C# 检索XmlNode SelectSingleNode父节点

C# 检索XmlNode SelectSingleNode父节点,c#,xml,C#,Xml,stack overflow帮了我很多忙,我决定加入进来,自己问个问题 我尝试执行的过程基本上是从XML文档中选择一个节点,然后删除用户选择的整个节点 现在来看看代码 int index = index = list_serverlist.SelectedIndex; string selectedItem = list_serverlist.Items[index].ToString(); XmlNode selectedNode = doc.SelectSingleNode("/Serve

stack overflow帮了我很多忙,我决定加入进来,自己问个问题

我尝试执行的过程基本上是从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>
它删除节点的所有子节点,但不包括父节点null。当我调试它并尝试获取父级时,由于一些奇怪的原因,它似乎返回null,并且不知道为什么


不熟悉XML,所以不确定我做错了什么

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

要删除整个服务器元素,您可以使用以下内容

    XmlNode nodeParent = selectedNode.ParentNode;
    nodeParent.ParentNode.RemoveChild(nodeParent);

谢谢你,这似乎很管用。奇怪的是,我认为它会先得到父节点,然后删除所有节点。我想不是。谢谢,虽然这让我通过了一个主要问题!帮了大忙!你能给答案加上一票吗?我需要在另一个论坛上提交这些要点。德克斯!回来接受作为回答。再次感谢。这是一个很长的时间以来,因为这个问题,我学到了很多!
    XmlNode nodeParent = selectedNode.ParentNode;
    nodeParent.ParentNode.RemoveChild(nodeParent);