堆栈溢出帮助了我很多,并决定自己加入并提出问题。
我正在尝试执行的过程基本上是从 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();
它删除节点的所有子节点,不包括父节点。当我调试它并尝试获取 Parent 时,它似乎出于某种奇怪的原因返回 null 并且无法弄清楚原因。
XML新手,所以不确定我做错了什么......