Frage

Wenn ich versuche, etwas von meinem Kind-Elemente mit RemoveChild () zu entfernen. Aber werfen Ausnahme. Ich legte meinen Code unten.

    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

anzeigen Fehler unter:

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. 

Wie kann ich entfernen Sie den Knoten?

[Update]

VS2005 & .NET 2.0 verwendet wird.

War es hilfreich?

Lösung

Ich glaube .RemoveChild das Kind des Knotens Entfernen Sie ausgewählt haben.

Gibt es Kinder unter nodeName oder ist es das Blatt schon?

Edit:

Eigentlich müssen Sie das Kind der Mutter zu entfernen, gehen Sie folgendermaßen vor:

nodeName.parentNode.removeChild(nodeName)

Andere Tipps

Sie versuchen, einen Knoten direkt aus dem Dokumentelement zu entfernen, wenn es tatsächlich ein Urenkel des Dokumentelements (oder vielleicht auch nur ein Enkelkind). RemoveChild funktioniert nur, wenn Sie einen direkt angeben Kind, nicht nur irgendeinen Nachkommen.

Versuchen Sie diese:

nodeName.ParentNode.RemoveChild(nodeName);

(Wenn Remove() nach Adkins' Antwort besteht, das wäre besser -. Aber ich kann ein solches Verfahren in MSDN nicht finden)

Sie sollen Kind aus den unmittelbar Eltern entfernen, nicht von oben:

nodeName.ParentNode.RemoveChild(nodeName); 

Statt mit .RemoveChild versuchen .Remove nur verwenden, sollten Sie geben das Ergebnis die Sie suchen.

Bearbeiten ::

Beachten Sie, dass dies nur funktioniert, wenn Sie Linq to XML verwenden. Dann würden Sie mit einer gewissen Variation eines XNode arbeiten und kann einfach blah.Remove sagen und es sollte den Trick tun. Wenn Sie nicht Linq to XML verwenden, würde ich vorschlagen, in dieser Sache suchen es erstaunlich ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top