如何将 XmlNode 从一个 XmlDocument 复制到另一个?
Posted
技术标签:
【中文标题】如何将 XmlNode 从一个 XmlDocument 复制到另一个?【英文标题】:How can I copy an XmlNode from one XmlDocument to another? 【发布时间】:2011-01-26 22:54:24 【问题描述】:我正在构建一个创作/编辑 XML 文件的工具,并且我希望能够使用在另一个 XML 文件中定义的模板片段来填充它。
例如,该工具有一个“添加 FooBarBaz 元素”按钮,可以将元素添加到正在创建的新文档中,我想通过从模板中复制来添加 FooBarBaz。
或者假设这是我的模板文件:
<Templates>
<FooBarBaz Attribute="Value">
<ChildElement/>
</FooBarBaz>
</Templates>
然后我可以使用 .GetElementsByTagName("FooBarBaz") 获取模板片段,并且我希望能够使用 .AppendChild(templateNode) 之类的内容将其注入新文档。
但问题是 XmlNode 不能从一个 XmlDocument 复制到另一个,即使您使用 .Clone() 或 .CloneNode(),因为 AppendChild() 会抛出一个异常,指出模板元素属于另一个上下文。
有没有一种简单的方法可以在 System.Xml.XmlDocument 之间复制 System.Xml.XmlNode?p>
【问题讨论】:
【参考方案1】:看看XmlDocument.ImportNode。
【讨论】:
【参考方案2】:查看ImportNode 方法:
var myNewDoc = new XmlDocument();
myNewDoc.ImportNode(xmlNode, true);
【讨论】:
以上是关于如何将 XmlNode 从一个 XmlDocument 复制到另一个?的主要内容,如果未能解决你的问题,请参考以下文章
如何从python中的xmlNode获取xpathContext