2008-09-11 18 views
2

İki farklı DOM Belgesinden XML'i birleştirmenin en kolay yolu nedir? Canonical DataReader yaklaşımını kullanmanın ve çıktılandırılmış DOM ile uğraşmanın başka bir yolu var mı? Temel olarak istediğim, XmlElements uygulamasına sahip olmadan AppendChild için: The node to be inserted is from a different document context. İşte çalışmak istediğim C# kodu, (ki ben yapıyorum ilgilenen düğümleri olan iki belgeyi birleştiren iki belgeyi birleştirmek) :XML'yi farklı DomDocuments'den nasıl eklerim?

XmlDocument doc1 = new XmlDocument(); 
doc1.LoadXml("<a><items><item1/><item2/><item3/></items></a>"); 
XmlDocument doc2 = new XmlDocument(); 
doc2.LoadXml("<b><items><item4/><item5/><item6/></items></b>"); 

XmlNode doc2Node = doc2.SelectSingleNode("/b/items"); 

XmlNodeList doc1Nodes = doc1.SelectNodes("https://stackoverflow.com/a/items/*"); 

foreach (XmlNode doc1Node in doc1Nodes) 
{ 
    doc2Node.AppendChild(doc1Node); 
} 

cevap

5

başka bir XmlDocument bir düğümü kopyalamak için XmlDocument.ImportNode yöntemini kullanabilirsiniz.

+1

http://php.net/domdocument.importnode – matpie

+0

Not .ImportNode() uyguladığınızda yeni bir düğüm aldığınızı unutmayın. Bunu kullanın - eski olan hala bir istisna atar! – ANeves

İlgili konular