我想删除这一个节点,例如:
<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) 任何帮助将不胜感激,提前谢谢。
答案 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']"));