使用RemoveChild()删除子节点

时间:2010-07-15 04:37:35

标签: c# xml removechild

我想删除这一个节点,例如:

<Sample ID="544" Type="0">Sample2</Sample>

来自此XML,例如:

 <Tests> <Test ID="0" AllowMultipleSelect="1">
  <Name>BaseSamples</Name>
  <Sample ID="546" Type="0">Sample1 </Sample>
  <Sample ID="135" Type="0">Sample45</Sample>
  <Sample ID="544" Type="0">Sample2</Sample>
  <Sample ID="5818" Type="0" >Sample78</Sample>
  </Test>
  </Tests>

所以我的结果是这样的:

 <Tests> <Test ID="0" AllowMultipleSelect="1">
  <Name>BaseSamples</Name>
  <Sample ID="546" Type="0">Sample1 </Sample>
  <Sample ID="135" Type="0">Sample45</Sample>
  <Sample ID="5818" Type="0" >Sample78</Sample>
  </Test>
  </Tests>

我可以一次删除任何一个节点(因为我放了一个循环来检查需要删除的样本ID) 任何帮助将不胜感激,提前谢谢。

3 个答案:

答案 0 :(得分:5)

XmlElement el = (XmlElement)originalXml.SelectSingleNode("/Tests/Test/Sample[@id='544']");
            if (el != null) {
                el.ParentNode.RemoveChild(el);
                originalXml.Save(@"d:\file.xml");
            }

答案 1 :(得分:3)

通过简单搜索在线找到:

XmlNode node = document.SelectSingleNode("/Tests/Test/Sample[@id='544']");
node.ParentNode.RemoveChild(t);
document.Save();

答案 2 :(得分:2)

我没有测试过这段代码,但应该可以使用。

XmlDocument xDoc = new XmlDocument();
xDoc.Load("file.xml");
xDoc.RemoveChild(xDoc.SelectSingleNode("//Sample[@ID='554']"));