2008-10-08 63 views
3

我有兩個XmlDocuments,我想從一個文檔中選擇一個XmlNode並將其附加到另一個文檔中的特定位置。將XmlNode從一個XmlDocument移動到另一個的直觀方式是什麼?

簡單地在文檔2的適當位置調用AppendNode(xmlNodeFromDocument1)的天真直觀的方法當然不起作用,因爲該方法不負責操作擁有文檔。

我終於在寫這個問題時找到了答案,但是因爲我們花了這麼長時間才發現它在System.Xml類中,我想我會在這裏發佈它來幫助其他任何人陷入搜索爲了它。

回答

6

您需要在目標文檔上調用ImportNode以獲得與目標文檔兼容的節點。下面的代碼演示瞭如何在C#中完成它。

public void CopyExample() 
{ 

    XmlNode nodeFromDifferentDocument = SelectNodeFromSourceDocument(); 
    XmlDocument targetDocument = InitializeTargetDocument(); 
    XmlNode targetParentNode = SelectNodesParentWithinTargetDocument(targetDocument); 
    bool shouldDodeepCopy = DoIWantADeepCopy(); 

    XmlNode copyThatBelongsToTargetDocument = 
     targetDocument.ImportNode(nodeFromDifferentDocument, shouldDoDeepCopy); 
    targetParentNode.AppendChild(copyThatBelongsToTargetDocument); 

} 
相關問題