Как объединить XML из разных DomDocuments - PullRequest
2 голосов
/ 12 сентября 2008

Какой самый простой способ объединить XML из двух разных документов DOM? Есть ли способ, отличный от использования подхода Canonical DataReader и последующего воспроизведения выходного DOM. То, что я в основном хочу, это добавить AppendChild в 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);
}

Ответы [ 2 ]

5 голосов
/ 12 сентября 2008

Вы можете использовать метод XmlDocument.ImportNode для копирования узла из XmlDocument в другой.

1 голос
/ 12 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...