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

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

  •  06-07-2019
  •  | 
  •  

我有两个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);

}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top