从两个不同的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);
}
答案 0 :(得分:5)
您可以使用XmlDocument.ImportNode方法将节点从XmlDocument复制到另一个节点。
答案 1 :(得分:1)
您可能对http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.importnode.aspx感兴趣。但仔细看看“下表描述了每个XmlNodeType的具体行为。” - 该文档的一部分。