【发布时间】:2016-02-04 16:06:34
【问题描述】:
给出以下 XML 示例
<aaa>
<bbb id="1">
<ccc att="123"/>
<ccc att="456"/>
<ccc att="789"/>
</bbb>
<bbb id="2">
<ccc att="321"/>
<ccc att="654"/>
<ccc att="987"/>
</bbb>
</aaa>
作为一个名为xDoc1 的XmlDocument 对象,由于它的ID 和XPath 指令,我设法删除了第一个bbb 节点,而将第二个bbb 节点单独留在aaa 中。
但现在我想在单个字符串中获取这个已删除的节点及其标记,因为该节点的 InnerText 值等于
<ccc att="123"/><ccc att="456"/><ccc att="789"/>
但我希望我的字符串等于
<bbb id='1'><ccc att="123"/><ccc att="456"/><ccc att="789"/></bbb>
我该怎么做?必须使用 XmlDocument。
我尝试使用ParentNode 方法,但随后它包含了另一个bbb 节点。
目前我的 C# 代码:
xDoc1 = new XmlDocument();
xDoc1.Load("file.xml"); // Containing the given example above.
XmlNodeList nodes = xDoc1.SelectSingleNodes("//bbb[@id='1']");
foreach (XmlNode n in nodes)
{
XmlNode parent = n.ParentNode;
parent.RemoveChild(n);
}
// At this point, xDoc1 does not contain the first bbb node (id='1') anymore.
【问题讨论】:
-
请将 XML 视为代码,同时缩进四个空格。谢谢。