2010-02-15 83 views
3

移除除了根元素從XML文件中的所有元素的C#

<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> 

我想刪除除根元素的所有元素的XML文件。如何做到這一點,請幫助我。

回答

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

但是,如果你知道root節點名稱是沒有意義的加載XML,並刪除所有元素。在這種情況下,只返回新的XML:

string newXml = "<rootName/>"; 
+0

那麼,最後一點你還必須考慮命名空間,xml聲明,註釋,屬性等...... –

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

或保持對根的屬性:

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

親愛非常感謝你,我在Google上搜尋這一點,因爲長。你已經解決了我的問題。 再次感謝。 –

+0

(其中'root'是'doc.DocumentElement') –

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