考虑以下 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");
}
我正在创建一个空节点并将每个段落节点的子节点添加到它。不幸的是,这不起作用:文本节点不能包含元素。
任何想法如何实施此替换?