我正在构建一个编写/编辑XML文件的工具,我希望能够使用另一个XML文件中定义的模板片段填充它。
例如,该工具有一个“添加FooBarBaz元素”按钮,可以为正在创建的新文档添加元素,我想通过从模板中复制它来添加FooBarBaz。
或者说这是我的模板文件:
<Templates>
<FooBarBaz Attribute="Value">
<ChildElement/>
</FooBarBaz>
</Templates>
然后我可以使用.GetElementsByTagName(“FooBarBaz”)获取模板片段,并且我希望能够使用类似.AppendChild(templateNode)的内容将其注入新文档。
但问题是XmlNode无法从一个XmlDocument复制到另一个XmlNode,即使你使用.Clone()或.CloneNode(),因为AppendChild()会抛出一个异常,说模板元素属于另一个上下文。
是否有一种简单的方法可以在System.Xml.XmlDocuments之间复制System.Xml.XmlNode? p>
答案 0 :(得分:7)
答案 1 :(得分:3)
查看ImportNode方法:
var myNewDoc = new XmlDocument();
myNewDoc.ImportNode(xmlNode, true);