Question

Lorsque je tente d'enlever une partie de mon élément enfant avec RemoveChild (). Mais jeter exception. J'attaché mon code ci-dessous.

    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

Afficher erreur ci-dessous:

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. 

Comment puis-je supprimer le nœud?

[Mise à jour]

VS2005 et .NET 2.0 utilisé.

Était-ce utile?

La solution

Je crois .RemoveChild enlève l'enfant du nœud que vous avez sélectionné.

Y a-t-il des enfants de moins de nodeName ou est-ce la feuille déjà?

Edit:

En fait, vous devez retirer l'enfant du parent, essayez ce qui suit:

nodeName.parentNode.removeChild(nodeName)

Autres conseils

Vous essayez de supprimer un nœud directement à partir de l'élément de document, quand il est en fait un grand-petit-enfant de l'élément de document (ou peut-être juste un petit-enfant). RemoveChild ne fonctionne que lorsque vous spécifiez un directement enfant, non seulement un descendant.

Essayez ceci:

nodeName.ParentNode.RemoveChild(nodeName);

(Si Remove() existe selon la réponse de Adkins, ce serait mieux -. Mais je ne peux pas trouver une telle méthode dans MSDN)

Vous devriez retirer l'enfant du parent immédiat, pas du haut:

nodeName.ParentNode.RemoveChild(nodeName); 

Au lieu d'utiliser .RemoveChild juste essayer en utilisant .Déposer Cela devrait vous donner le résultat que vous recherchez.

Modifier ::

Notez que cela ne fonctionne que si vous utilisez LINQ to XML. Ensuite, vous travaillerez avec une certaine variation d'un XNode et peut simplement dire blah.Remove et il devrait faire l'affaire. Si vous ne l'utilisez LINQ to XML Je suggère à la recherche dans cette cause, il est étonnant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top