从 XML 文件中删除所有元素,除了根元素 C#

4

我有一个xml文件

<Abc> 
  <image filename="1.jpg" heading="1.jpg" />
  <image filename="10.jpg" heading="10.jpg" />
  <image filename="11.jpg" heading="11.jpg" />
  <image filename="2.jpg" heading="2.jpg" />
  <image filename="3.jpg" heading="3.jpg" />
</Abc>

我想删除除根元素以外的所有元素。如何实现呢?请帮帮我。
3个回答

3
XmlDocument doc = new XmlDocument();
doc.Load("filename.xml");
doc.DocumentElement.RemoveAll();
string result = doc.OuterXml;

但是如果你知道根节点的名称,加载整个XML然后删除所有元素是毫无意义的。在这种情况下,只需返回新的XML:

string newXml = "<rootName/>";

好的,在最后一个点上,您还需要考虑命名空间、XML声明、注释、属性等等... - Marc Gravell

2
    XmlDocument doc = new XmlDocument();
    doc.Load(path);
    doc.DocumentElement.RemoveAll();
    doc.Save(path);

或者保留根节点上的属性:
    XmlNode lastChild;
    while((lastChild = root.LastChild) != null) {
        root.RemoveChild(lastChild);
    }

亲爱的,非常感谢你。我已经搜索了很久了。你解决了我的问题。再次感谢。 - Mohan
(其中rootdoc.DocumentElement - Marc Gravell

0
 var xml = XElement.Load("xmlfile1.xml");
 xml.Descendants.Remove();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接