如何合并来自不同DomDocuments的XML

时间:2008-09-11 20:43:27

标签: .net xml

从两个不同的DOM文档合并XML的最简单方法是什么?除了使用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 个答案:

答案 0 :(得分:5)

您可以使用XmlDocument.ImportNode方法将节点从XmlDocument复制到另一个节点。

答案 1 :(得分:1)

您可能对http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.importnode.aspx感兴趣。但仔细看看“下表描述了每个XmlNodeType的具体行为。” - 该文档的一部分。