用标签包装XmlNode - C#

时间:2010-02-17 13:50:52

标签: c# .net xml

我有以下xml:

<span>sometext</span>

我想用另一个标签包装这个XmlNode:

<p><span>sometext</span></p>

我怎样才能做到这一点。对于解析,我使用XmlDocument(C#)。

3 个答案:

答案 0 :(得分:2)

以上&#34;最佳答案&#34;如果你不在乎新的&#34; p&#34;节点最终在父节点的末尾。要将其替换为原位,请使用:

string xml = "<span>sometext</span>";
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
// If you have XmlNode already, you can start from this point
XmlNode node = xDoc.DocumentElement;
XmlElement clone = node.Clone();
XmlNode parent = node.ParentNode;

XmlElement xElement = xDoc.CreateElement("p");
xElement.AppendChild(clone);
parent.ReplaceChild(xElement, node);

答案 1 :(得分:1)

你可以尝试这样的事情。

string xml = "<span>sometext</span>";
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
// If you have XmlNode already, you can start from this point
XmlNode node = xDoc.DocumentElement;
XmlNode parent = node.ParentNode;
XmlElement xElement = xDoc.CreateElement("p");
parent.RemoveChild(node);
xElement.AppendChild(node);
parent.AppendChild(xElement);

答案 2 :(得分:0)

您必须使用XmlDocument的CreateNode(XmlNodeType.Element,“p”,“”)。

然后使用AppendChild方法将旧节点附加到新节点