Was ist eine intuitive Möglichkeit, einen XMLNode von einem xmldocument in ein anderes zu verschieben?
-
06-07-2019 - |
Frage
Ich habe zwei XMLDOCUMENTS und möchte einen aus einem der Dokumente ausgewählten XMLNode verschieben und an einem bestimmten Ort im anderen Dokument anhängen.
Der naiven intuitive Ansatz, einfach AppendNode (xMlnodeFromDocument1) an der geeigneten Stelle von Dokument 2 aufzurufen, funktioniert natürlich nicht, da die Methode nicht um die Manipulation des Besitzes dokumentiert wird.
Ich fand die Antwort schließlich buchstäblich, als ich diese Frage aufgeschrieben habe, aber da es so lange gebraucht hat, dass wir sie im System des Systems fanden.
Lösung
Sie müssen anrufen ImportNode
im Zieldokument, um einen Knoten mit Ihrem Zieldokument kompatibel zu erhalten. Der folgende Code zeigt, wie es in C#gemacht wird.
public void CopyExample()
{
XmlNode nodeFromDifferentDocument = SelectNodeFromSourceDocument();
XmlDocument targetDocument = InitializeTargetDocument();
XmlNode targetParentNode = SelectNodesParentWithinTargetDocument(targetDocument);
bool shouldDodeepCopy = DoIWantADeepCopy();
XmlNode copyThatBelongsToTargetDocument =
targetDocument.ImportNode(nodeFromDifferentDocument, shouldDoDeepCopy);
targetParentNode.AppendChild(copyThatBelongsToTargetDocument);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow