2010-03-12 45 views
4

我正在构建一个作者/编辑XML文件的工具,我希望能够使用另一个XML文件中定义的模板片段来填充它。如何将XmlNode从一个XmlDocument复制到另一个XmlDocument?

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

还是让我们说这是我的模板文件:

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

我可以再抢用.GetElementsByTagName(“FooBarBaz”)的模板片段,我希望能够把它注入新像.AppendChild(templateNode)这样的文件。

但问题是,一个XmlNode不能)复制从一个XmlDocument的另一个,即使您使用.Clone()或.CloneNode(因为使用appendChild()抛出一个异常,称该模板元素属于另一个上下文。

是否有一种简单的方法可以在System.Xml.XmlDocuments之间复制System.Xml.XmlNode?

回答

3

时退房ImportNode方法:

var myNewDoc = new XmlDocument(); 
myNewDoc.ImportNode(xmlNode, true); 
相关问题