正在检索XmlNode SelectSingleNode父节点

本文关键字:SelectSingleNode 父节点 XmlNode 检索 | 更新日期: 2023-09-27 18:00:45

堆栈溢出帮了我很多忙,我决定自己加入并提出一个问题。

我尝试做的过程基本上是从XML文档中选择一个节点,并删除用户选择的整个节点。

现在获取一些代码!

int index = index = list_serverlist.SelectedIndex;
string selectedItem = list_serverlist.Items[index].ToString();
XmlNode selectedNode = doc.SelectSingleNode("/ServerList/Server/ServerName[text()='" + selectedItem + "']");
selectedNode.ParentNode.RemoveAll();
doc.Save(filePath);

还有我正在使用的XML文件

<?xml version="1.0"?>
<ServerList>
  <Server>
    <ServerName>FAB13-HST01</ServerName>
    <ServerIP>wasd</ServerIP>
    <ServerUsername>..'Administrator</ServerUsername>
    <ServerPassword>wasd</ServerPassword>
  </Server>
  <Server>
    <ServerName>FAB13-HST02</ServerName>
    <ServerIP>wasd</ServerIP>
    <ServerUsername>..'Administrator</ServerUsername>
    <ServerPassword>wasd</ServerPassword>
  </Server>
  <Server>
    <ServerName>FAB13-HST03</ServerName>
    <ServerIP>wasd</ServerIP>
    <ServerUsername>..'Administrator</ServerUsername>
    <ServerPassword>wasd</ServerPassword>
  </Server>
</ServerList>

现在我如何看待代码的发生是…

基本上,我得到了用户从ListBox中选择的内容,使其成为一个字符串,然后在ServerName字段中选择具有该字符串的单个节点。当调试时似乎工作正常。

但是,当我使用命令时

selectedNode.ParentNode.RemoveAll();

它删除节点的所有子级,不包括父级null。当我调试它并尝试获取Parent时,它似乎因为某种奇怪的原因返回了null,并且不知道为什么。

XML新手,所以不确定我做错了什么。。。

正在检索XmlNode SelectSingleNode父节点

如果在调用RemoveAll()后尝试获取父节点,则所选节点将不存在。

要删除整个服务器元素,可以使用类似的方法。

    XmlNode nodeParent = selectedNode.ParentNode;
    nodeParent.ParentNode.RemoveChild(nodeParent);
相关文章:
  • 没有找到相关文章