我想从xml用户选择路径的文件中删除xml节点

本文关键字:xml 文件 删除 节点 选择 用户 路径 | 更新日期: 2023-09-27 18:05:57

这段代码不起作用。它没有移除path4节点我该怎么做呢?请帮帮我。谢谢你。

<WindowEntries>
<WindowEntry>
  <Name>tbwUnitOverview</Name>
  <View>TRN_UNIT</View>
  <LU>TrnUnit</LU>
  <DefaultWindowText> windowtext</DefaultWindowText>
  <Flags>0</Flags>
</WindowEntry>
<WindowEntry>
  <Name>tbwBrandOverView</Name>
  <View>TRN_BRAND</View>
  <LU>TrnBrand</LU>
  <DefaultWindowText />
  <Flags>0</Flags>
</WindowEntry>
<WindowEntry>
  <Name>tbwProductCategory</Name>
  <View>TRN_PROD_CATEGORY</View>
  <LU>TrnProdCategory</LU>
  <DefaultWindowText />
  <Flags>0</Flags>
</WindowEntry>

         XmlTextReader reader = new XmlTextReader("component.xml");
         XmlDocument doc = new XmlDocument();
            doc.Load(reader);
            reader.Close();
            XmlNode currNode;
            string path4 = treeView1.SelectedNode.FullPath.ToString();
                currNode = doc.SelectSingleNode(path4);
                currNode.RemoveAll();

            doc.Save("component.xml");

我想从xml用户选择路径的文件中删除xml节点

问题是您正在删除从文档中选择的节点的所有子节点和属性,而不是实际节点本身。

看到:XmlNode。RemoveAll方法

如果要删除实际节点,则需要访问父节点(XmlNode. xml)。属性),然后调用RemoveChild方法(XmlNode. properties)。RemoveChild方法)传入您希望删除的节点,如下所示:

string path4 = treeView1.SelectedNode.FullPath.ToString();
XmlNode nodeToRemove = doc.SelectSingleNode(path4);
XmlNode parentNode = nodeToRemove.ParentNode;
parentNode.RemoveChild(nodeToRemove);