XmlNodeをあるXmlDocumentから別のXmlDocumentに移動する直観的な方法は何ですか?
-
06-07-2019 - |
質問
2つのXmlDocumentがあり、ドキュメントの1つから選択したXmlNodeを移動し、他のドキュメントの特定の場所に追加したい。
ドキュメント2の適切な場所でAppendNode(xmlNodeFromDocument1)を単純に呼び出すという単純で直感的なアプローチは、メソッドが所有ドキュメントの操作を処理しないため、もちろん機能しません。
この質問を書いているときに最終的に答えを文字通り見つけましたが、System.Xmlクラスで見つけるのに時間がかかったので、他の人が探しているのを助けるためにここに投稿すると思いましたそれ。
解決
ターゲットドキュメントで ImportNode
を呼び出して、ターゲットドキュメントと互換性のあるノードを取得する必要があります。次のコードは、C#でどのように実行されるかを示しています。
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);
}
所属していません StackOverflow