Was ist eine intuitive Möglichkeit, einen XMLNode von einem xmldocument in ein anderes zu verschieben?

StackOverflow https://stackoverflow.com/questions/184486

  •  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.

War es hilfreich?

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
scroll top