C#XML合并(2个以上文件)

AEM*_*iji 1 c# xml

我有问题使用c#将2个或更多xml文件合并为1.

我正在使用DataSet进行:

//ds1,ds2,ds3 are DataSets
private void MyMethod()
{
    ds1.ReadXml(tmpStream);
    ds2.ReadXml(tmpStream);    
    ds1.Merge(ds2);
}
Run Code Online (Sandbox Code Playgroud)

但我不想使用DataSet.我正在寻找另一种方式.

第一个XML是

<?xml version="1.0" encoding="utf-8"?>
<catalog>
  <item>
    <path>'filePath'</path>
    <deleted>0</deleted>
    <date>9/23/2010 11:30:03 AM</date>
  </item> 
</catalog>
Run Code Online (Sandbox Code Playgroud)

第二是

<?xml version="1.0" encoding="utf-8"?>
<catalog>
  <item>
    <path>'filePath'</path>
    <deleted>0</deleted>
    <date>9/23/2010 11:30:03 AM</date>
  </item> 
</catalog>
Run Code Online (Sandbox Code Playgroud)

结果必须是

<?xml version="1.0" encoding="utf-8"?>
    <catalog>
      <item>
        <path>'filePath'</path>
        <deleted>0</deleted>
        <date>9/23/2010 11:30:03 AM</date>
      </item> 
      <item>
        <path>'filePath'</path>
        <deleted>0</deleted>
        <date>9/23/2010 11:30:03 AM</date>
      </item> 
    </catalog>
Run Code Online (Sandbox Code Playgroud)

KMå*_*Mån 5

虽然这并不是很清楚你想要什么样的合并,但本文Merging XML Files, Schema Validation, and More可能会帮助你理解.

最简单的可能是,如果你不想要执行任何检查(重复,僵尸等)

var ResultXml = XDocument.Load("file1.xml");
ResultXml.Root.Add(XDocument.Load("file2.xml").Root.Elements());
Run Code Online (Sandbox Code Playgroud)