C# 将两个xml_文档合并到xmlDocument中

C# 将两个xml_文档合并到xmlDocument中,c#,xml,C#,Xml,我一直在使用下面的方法来尝试将两个示例xml文件合并为一个。基本上这是我的两个xml文件 test1.xml: <root> <Name> <id>4</id> <First_name>Tony</First_name> <last_name>""</last_name> </Name> <Name>

我一直在使用下面的方法来尝试将两个示例xml文件合并为一个。基本上这是我的两个xml文件

test1.xml:

<root>
    <Name>
        <id>4</id>
        <First_name>Tony</First_name>
        <last_name>""</last_name>
    </Name>
    <Name>
        <id>6</id>
        <First_name>Donny</First_name>
        <last_name>Test</last_name>
        <middle_name>Ward</middle_name>
    </Name>
</root>
我认为从test2.xml中获取root的每个子节点并将其附加到test1.xml是正确的。我也尝试过:

XmlNode importedDocument = xmlreader1.ImportNode(xmlreader2.DocumentElement, true);
xmlreader1.DocumentElement.AppendChild(importedDocument);

如果没有任何效果,我们将非常感谢您的建议。

您还不完全清楚需要执行哪些合并操作-但是如果您只需要复制根节点的子元素,那么使用LINQ to XML就非常简单:

XDocument doc1 = XDocument.Load("test1.xml");
XDocument doc2 = XDocument.Load("test2.xml");
doc1.Root.Add(doc2.Root.Elements());
doc1.Save("test3.xml");
但是,这不会执行任何实际的合并-如果两个文件中的元素具有相同的ID,那么结果中的两个元素都会出现,而不是一个合并的元素

就我个人而言,我总是更喜欢使用LINQ to XML而不是旧的XmlDocument API—我强烈建议您在有机会的时候使用它。

您是否特别需要使用XmlDocument?LINQ到XML通常更易于使用。此外,请更加注意格式化您的帖子-查看预览,只有当问题看起来像您想要的样子时才提交,如果您试图回答它。
XmlNode importedDocument = xmlreader1.ImportNode(xmlreader2.DocumentElement, true);
xmlreader1.DocumentElement.AppendChild(importedDocument);
XDocument doc1 = XDocument.Load("test1.xml");
XDocument doc2 = XDocument.Load("test2.xml");
doc1.Root.Add(doc2.Root.Elements());
doc1.Save("test3.xml");