我有两个 XmlDocument,我想移动从其中一个文档中选择的 XmlNode 并将其附加到另一个文档中的特定位置。
在文档 2 的适当位置简单地调用 AppendNode(xmlNodeFromDocument1) 的天真直观的方法当然不起作用,因为该方法不负责操作拥有的文档。
在我写这个问题的时候,我终于找到了答案,但是由于我们花了很长时间才在 System.Xml 类中找到它,我想我会把它贴在这里帮助其他人搜索它。
我有两个 XmlDocument,我想移动从其中一个文档中选择的 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);
}