按内容

时间:2015-06-15 18:58:15

标签: c# xml

我有一个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);

2 个答案:

答案 0 :(得分:1)

实际上最初发布的程序运行正常,只有一个小错误:应该在节点而不是doc上调用“ParentNode.RemoveChild()”。

答案 1 :(得分:0)

试试这个:

 foreach (XmlNode node in doc.ChildNodes)
 {
      if (node.InnerText == "test")
      {
           doc.RemoveChild(node);
      }
  }
相关问题