【发布时间】:2013-02-10 18:58:39
【问题描述】:
考虑以下 xml:
<div>
<a href="http://www.google.com/">This is:</a>
<p>A test... <b>1</b><i>2</i><u>3</u></p>
<p>This too</p>
Finished.
</div>
此 xml 的内容位于 System.Xml.XmlDocument 实例中。我需要替换所有 p 元素并在每个段落元素后添加一个中断。我写了以下代码:
var pElement = xmlDocument.SelectSingleNode("//p");
while (pElement != null)
{
var textNode = xmlDocument.CreateTextNode("");
foreach (XmlNode child in pElement.ChildNodes)
{
textNode.AppendChild(child);
}
textNode.AppendChild(xmlDocument.CreateElement("br"));
pElement.ParentNode.ReplaceChild(pElement, textNode);
pElement = xmlDocument.SelectSingleNode("//p");
}
我正在创建一个空节点并将每个段落节点的子节点添加到它。不幸的是,这不起作用:文本节点不能包含元素。
任何想法如何实现此替换?
【问题讨论】:
-
有什么理由不使用LINQ-to-XML?对于 LINQ-to-XML,这将是两行代码。
-
我正在开发一个现有的程序/框架。这就是格式是 XmlDocument 的原因。
标签: c# asp.net xmldocument