考慮下面的XML:如何替換System.Xml.XmlDocument中的節點?
<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](http://msdn.microsoft.com/zh-cn/library/bb387098.aspx)的原因?使用LINQ到XML這將是兩行代碼。 – dtb 2013-02-25 15:23:12
我正在研究現有的程序/框架。這就是爲什麼格式是XmlDocument。 – 2013-02-25 15:51:35