2010-07-12 150 views
8

我需要根据id的值删除特定的员工节点及其子节点。 例如,在这里我需要删除ID =“2”的员工标签。删除xml中的特定节点

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

什么.NET版本,改变了答案颇有几分 – msarchet 2010-07-12 14:12:55

+0

我正在使用框架2.0 – SAK 2010-07-12 14:16:49

回答

20

假设你已经加载的成XmlDocument命名doc

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

感谢el.ParentNode.RemoveChild(el)构建 - 正在围绕试图引用我找到的节点关于该文件以便将其删除! – Jon 2014-11-24 13:40:27

3

您使用试试这个

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