如何将一个 XmlNode 从一个 XmlDocument 复制到另一个 XmlDocument?

6
我是一个辅助翻译工具。以下是您需要翻译的内容:

我正在构建一个用于编写/编辑 XML 文件的工具,并希望能够使用在另一个 XML 文件中定义的模板片段来填充它。

例如,该工具有一个“添加 FooBarBaz 元素”按钮,可将一个元素添加到正在创建的新文档中,我希望通过从模板中复制它来添加 FooBarBaz。

或者,假设这是我的模板文件:

<Templates>
    <FooBarBaz Attribute="Value">
        <ChildElement/>
    </FooBarBaz>
</Templates>

我可以使用 .GetElementsByTagName("FooBarBaz") 获取模板片段,然后希望能够像 .AppendChild(templateNode) 这样将其注入到新文档中。但问题在于 XmlNode 无法从一个 XmlDocument 复制到另一个 XmlDocument,即使使用 .Clone() 或 .CloneNode() 也不行,因为 AppendChild() 抛出异常,指出模板元素属于另一个上下文。有没有简单的方法在两个 System.Xml.XmlDocuments 之间复制 System.Xml.XmlNode?
2个回答

11

欢迎提供解决方案的链接,但请确保您的答案即使没有链接也是有用的:在链接周围添加一些上下文,以便其他用户知道它是什么以及为什么被提供,然后引用您所链接页面中最相关的部分,以防目标页面无法访问。如果答案仅仅是一个链接,则可能会被删除 - Jim G.

7

请查看ImportNode方法:

var myNewDoc = new XmlDocument();
myNewDoc.ImportNode(xmlNode, true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接