2010-02-15 3 views
3

Je dispose d'un fichier xmlsupprimer tous les éléments de fichier XML, sauf élément racine 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> 

Je veux supprimer tous les éléments sauf élément racine. Comment accomplir ceci. Veuillez m'aider.

Répondre

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

Mais si vous connaissez le nom du nœud racine, il est inutile de charger le XML et de supprimer tous les éléments. Dans ce cas, il suffit de retourner le nouveau XML:

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

Eh bien, dans le dernier point, vous devriez aussi considérer les espaces de noms, les déclarations xml, les commentaires, les attributs, etc ... –

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

ou de garder les attributs de la racine:

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

Cher merci beaucoup je googler cela depuis longtemps. Vous avez résolu mon problème. Merci encore. –

+0

(où 'root' est' doc.DocumentElement') –

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