2010-07-12 14 views
8

Necesito eliminar un nodo de empleado específico y también su nodo hijo según el valor de id. Por ejemplo, aquí necesito eliminar la etiqueta de empleado con id = "2".eliminando un nodo específico en xml

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

¿Qué versión de .NET está usando, cambia la respuesta un poco – msarchet

+0

Estoy usando framework 2.0 – SAK

Respuesta

20

Suponiendo que han cargado que en un XmlDocument nombrado doc:

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

Gracias por el el.ParentNode.RemoveChild (el) construction - estaba dando vueltas en círculos tratando de hacer referencia al nodo que había encontrado con respecto al documento para eliminarlo! – Jon

3

prueba este

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