2010-07-12 4 views
8

Je dois supprimer un nœud d'employé spécifique ainsi que son nœud enfant en fonction de la valeur de l'ID. Par exemple, ici, je dois supprimer la balise employee avec id = "2".Suppression d'un nœud spécifique en XML

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

Quelle version de .net utilisez-vous, la réponse change un peu – msarchet

+0

J'utilise framework 2.0 – SAK

Répondre

20

En supposant que vous avez chargé que dans un XmlDocument nommé doc:

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

Merci pour la construction el.ParentNode.RemoveChild (el) - tournait en rond en essayant de référencer le nœud que j'avais trouvé en ce qui concerne le document afin de l'enlever! – Jon

3

Essayez celui

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