次の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");
}
空のノードを作成し、それに各段落ノードの子ノードを追加しています。残念ながら、これは機能しません。テキストノードに要素を含めることはできません。
この置換を実装する方法はありますか?