2010-03-12 79 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); 
相關問題