我有一个XML文件,我想删除一个节点,它的内容是' 测试'。 我搜索整个谷歌,所以没有帮助我或我无法得到我的答案。 XML文件内容如下所示:
<?xml version="1.0" encoding="utf-8"?>
<parent>
<child>C#</child>
<child>VB</child>
<child>VB.net</child>
<child>F#</child>
<child>C++</child>
<child>C</child>
<child>Ruby</child>
<child>Pascal</child>
<child>test</child>
<child>python</child>
</parent>
我可以将它加载到任何列表中。所以我的地址没问题。 但无法删除其内容测试的节点。
我尝试过的代码之一是:
XmlDocument doc = new XmlDocument();
doc.Load(Address);
XmlNode node = doc.SelectSingleNode("/parent/child[text()='test']");
doc.ParentNode.RemoveChild(node);
doc.Save(Address);
任何建议都会很明显。
更新:感谢 Andrei Vatasescu ,正确的答案是:
node.ParentNode.RemoveChild(node);
而不是:
doc.ParentNode.RemoveChild(node);
答案 0 :(得分:1)
实际上最初发布的程序运行正常,只有一个小错误:应该在节点而不是doc上调用“ParentNode.RemoveChild()”。
答案 1 :(得分:0)
试试这个:
foreach (XmlNode node in doc.ChildNodes)
{
if (node.InnerText == "test")
{
doc.RemoveChild(node);
}
}