删除指定值的子节点

本文关键字:子节点 删除 | 更新日期: 2023-09-27 18:13:59

我试图从XPath中删除包含值"dfdfdfd"的列表名称

XmlNode names = LoadDocument(xml).DocumentElement.SelectSingleNode("//Class[@Name='" + getCurClass() + "']/Property[@Id='" + i + "']/Lists[contains(ListName,'ws_Users')]");

在我执行这个语句之后:

names.RemoveChild(names.FirstChild); 

但如果什么也没发生

My XML:

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Class Name="ECMInstruction" Style="Top">
    <Entity Id="1" Name="DocumentInformation" />
    <Property Id="1">
    </Property>
    <Property Id="2">
      <Lists>
        <ListName>ws_Users</ListName>
         <ListName>dfdfdfd</ListName>
      </Lists>
    </Property>
  </Class>
</Root>

Thanks for the help

删除指定值的子节点

您需要将修改后的XmlDocument对象保存回file:

XmlDocument doc = LoadDocument(xml);
XmlNode names = doc.DocumentElement.SelectSingleNode("//Class[@Name='" + getCurClass() + "']/Property[@Id='" + i + "']/Lists[contains(ListName,'ws_Users')]");
names.RemoveChild(names.FirstChild); 
//save `doc` back to file :
doc.Save("path_to_the_xml_file.xml");

或者这样:

XmlNode names = LoadDocument(xml).DocumentElement.SelectSingleNode("//Class[@Name='" + getCurClass() + "']/Property[@Id='" + i + "']/Lists[contains(ListName,'ws_Users')]");
names.RemoveChild(names.FirstChild); 
//save owner `XmlDocument` back to file :
names.OwnerDocument.Save("path_to_the_xml_file.xml");