函数RemoveChild(XmlNode节点)在C#中失败

Nan*_* HE 3 c# xml selectsinglenode removechild c#-2.0

当我尝试使用RemoveChild()删除我的一些子元素时.但抛出异常.我在下面附上了我的代码.

    nodeName = doc.SelectSingleNode("//Equipment//DataCollections//EnabledIDs//MyID[@id='" + attrValue + "']"); 
   // Found the nodeName successfully druing run time.
    doc.DocumentElement.RemoveChild(nodeName); 
   // faild to Remove the node
Run Code Online (Sandbox Code Playgroud)

显示以下错误:

An unhandled exception of type 'System.ArgumentException' occurred in System.Xml.dll

Additional information: The node to be removed is not a child of this node. 
Run Code Online (Sandbox Code Playgroud)

如何删除节点?

[更新]

使用VS2005和.NET 2.0.

Tre*_*fex 7

我相信.RemoveChild正在删除您选择的节点的子节点.

nodeName叶子下面还有叶子吗?

编辑:

实际上你需要删除Parent的Child,尝试以下方法:

nodeName.parentNode.removeChild(nodeName)
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 5

您正试图直接从文档元素中删除节点,当它实际上是文档元素的曾孙(或者可能只是孙子)时.RemoveChild仅在指定直接子项时才有效,而不仅仅是任何后代.

试试这个:

nodeName.ParentNode.RemoveChild(nodeName);
Run Code Online (Sandbox Code Playgroud)

(如果Remove()根据Adkins的回答存在,那会更好 - 但我在MSDN中找不到这样的方法.)