Chr*_*ham 4 xml .net-4.0 .net-3.5
我正在构建一个编写/编辑XML文件的工具,我希望能够使用另一个XML文件中定义的模板片段填充它.
例如,该工具有一个"Add FooBarBaz Element"按钮,它为正在创建的新文档添加一个元素,我想通过从模板中复制它来添加FooBarBaz.
或者说这是我的模板文件:
<Templates>
<FooBarBaz Attribute="Value">
<ChildElement/>
</FooBarBaz>
</Templates>
Run Code Online (Sandbox Code Playgroud)
然后,我可以使用.GetElementsByTagName("FooBarBaz")获取模板片段,并且我希望能够使用.AppendChild(templateNode)将其注入到新文档中.
但问题是,即使您使用.Clone()或.CloneNode(),也无法将XmlNode从一个XmlDocument复制到另一个XmlDocument,因为AppendChild()会抛出一个异常,说明该模板元素属于另一个上下文.
有没有一种简单的方法可以在System.Xml.XmlDocuments之间复制System.Xml.XmlNode?
查看ImportNode方法:
var myNewDoc = new XmlDocument();
myNewDoc.ImportNode(xmlNode, true);
Run Code Online (Sandbox Code Playgroud)