2010-07-12 14 views
8

Ich muss bestimmte Mitarbeiter Knoten und auch seine Kind-Knoten basierend auf dem Wert der ID löschen. Zum Beispiel, hier muss ich Mitarbeiter-Tag mit id = "2" löschen.Löschen bestimmter Knoten in xml

<company> 
    <employee> 
     <id>1</id> 
     <name>sa</name> 
    </employee> 
    <employee> 
     <id>2</id> 
     <name>ssa</name> 
    </employee> 
</company> 
+0

Welche Version von .net verwenden Sie ändert die Antwort ziemlich viel – msarchet

+0

Ich benutze Framework 2.0 – SAK

Antwort

20

Sie haben Angenommen geladen, die in eine XmlDocumentdoc genannt:

XmlElement el = (XmlElement)doc.SelectSingleNode("/company/employee[id=2]"); 
if(el != null) { el.ParentNode.RemoveChild(el); } 
+0

Danke für die el.ParentNode.RemoveChild (el) Konstruktion - ging in Kreisen um den Verweis auf den Knoten, den ich gefunden hatte in Bezug auf das Dokument, um es zu entfernen! – Jon

3

dieses Probieren Sie eine

XmlDocument xmlDoc = new XmlDocument(); 
XmlNode nodeToDelete = xmlDoc.SelectSingleNode("/root/XMLFileName[@ID="+nodeId+"]"); 
      if (nodeToDelete != null) 
      { 
       nodeToDelete.ParentNode.RemoveChild(nodeToDelete); 
      } 
      xmlDoc.Save("XMLFileName.xml")