2010-07-12 192 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")