Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何从不同的文档中合并XML_.net_Xml - Fatal编程技术网

.net 如何从不同的文档中合并XML

.net 如何从不同的文档中合并XML,.net,xml,.net,Xml,从两个不同的DOM文档中合并XML的最简单方法是什么?除了使用规范方法然后处理输出的DOM之外,还有其他方法吗。我基本上想要的是将child附加到XmlElements,而不获取:要插入的节点来自不同的文档上下文。这里是我想要使用的C代码,显然不会(我正在做的是合并两个文档,其中有一组我感兴趣的部分节点): XmlDocument doc1=新的XmlDocument(); doc1.LoadXml(“”); XmlDocument doc2=新的XmlDocument(); doc2.Load

从两个不同的DOM文档中合并XML的最简单方法是什么?除了使用规范方法然后处理输出的DOM之外,还有其他方法吗。我基本上想要的是将child附加到XmlElements,而不获取:
要插入的节点来自不同的文档上下文。
这里是我想要使用的C代码,显然不会(我正在做的是合并两个文档,其中有一组我感兴趣的部分节点):

XmlDocument doc1=新的XmlDocument();
doc1.LoadXml(“”);
XmlDocument doc2=新的XmlDocument();
doc2.LoadXml(“”);
XmlNode doc2Node=doc2.SelectSingleNode(“/b/items”);
XmlNodeList doc1Nodes=doc1.SelectNodes(“/a/items/*”);
foreach(doc1Nodes中的XmlNode doc1Node)
{
doc2Node.AppendChild(doc1Node);
}

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

您可能会感兴趣。但请仔细查看“下表描述了每个XmlNodeType的特定行为。”——该文档的一部分。

请注意,当您使用.ImportNode()时,您会得到一个新节点。使用这个-旧的仍然会抛出异常!
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);
}