【发布时间】: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>
【问题讨论】: