Каков самый простой способ объединить XML из двух разных документов DOM? Есть ли другой способ, кроме использования канонического подхода DataReader, а затем возиться с выведенной DOM. В основном я хочу добавитьChild в XmlElements, не получая: The node to be inserted is from a different document context. Вот код C#, с которым я хочу работать, но, очевидно, не будет (то, что я делаю, это слияние двух документов, которые имеют кучу узлов, которые меня интересуют частями) :
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("/a/items/*");
foreach (XmlNode doc1Node in doc1Nodes)
{
doc2Node.AppendChild(doc1Node);
}





Вы можете использовать метод XmlDocument.ImportNode для копирования узла из XmlDocument в другой.
Возможно, вас заинтересует http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.importnode.aspx. Но внимательно посмотрите на «В следующей таблице описывается конкретное поведение каждого XmlNodeType.» - части этого документа.
Обратите внимание, что когда вы .ImportNode () получаете новый узел. Используйте этот - старый все равно выдаст исключение!