.net 将XmlNode从一个XmlDocument移动到另一个XmlNode的直观方法是什么?

.net 将XmlNode从一个XmlDocument移动到另一个XmlNode的直观方法是什么?,.net,xml,system.xml,.net,Xml,System.xml,我有两个XmlDocuments,我想移动从其中一个文档中选择的XmlNode,并将其附加到另一个文档中的特定位置 简单地在文档2的适当位置调用AppendNode(xmlNodeFromDocument1)的天真直观的方法当然不起作用,因为该方法不处理所属文档 在我写这个问题的时候,我终于找到了答案,但由于我们花了很长时间才在System.Xml类中找到它,我想我会将它发布在这里,以帮助其他一直在搜索它的人。您需要在目标文档上调用ImportNode,以获得与目标文档兼容的节点。下面的代码说明

我有两个XmlDocuments,我想移动从其中一个文档中选择的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);

}