从根元素c#中删除xml文件中的所有元素

时间:2010-02-15 07:27:26

标签: c# asp.net

我有一个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>

我想删除除root元素之外的所有元素。怎么做到这一点。请帮帮我。

3 个答案:

答案 0 :(得分:3)

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

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

string newXml = "<rootName/>";

答案 1 :(得分:2)

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

或保留根目录上的属性:

    XmlNode lastChild;
    while((lastChild = root.LastChild) != null) {
        root.RemoveChild(lastChild);
    }

答案 2 :(得分:0)

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