2010-09-29 85 views
1

我有问题要合并2个或更多的XML文件到1使用C#。C#XML合并(2+文件)

我与数据集做:

//ds1,ds2,ds3 are DataSets 
private void MyMethod() 
{ 
    ds1.ReadXml(tmpStream); 
    ds2.ReadXml(tmpStream);  
    ds1.Merge(ds2); 
} 

,但我不希望使用的数据集。我正在寻找另一种方式。

第一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> 

二是

<?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> 

结果必然是

<?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> 
+3

阅读更多关于它的信息。你需要提供你想要做的合并的更多细节。什么是XML文件的结构?他们是否共享相同的根元素?你只是想要两个文件中的所有元素,还是应该合并一些元素? – 2010-09-29 06:51:58

+1

这两个xmls都是一样的,你想合并什么?你想合并成一个?或者你想在合并后有两个''节点?合并后应该输出什么? – 2010-09-29 08:03:15

+0

如果你向我们展示了你想要的结果,它会有很大的帮助。 – Foole 2010-09-29 08:25:14

回答

5

虽然这不是真正清楚什么样的合并的你想要的,这篇文章Merging XML Files, Schema Validation, and More可能会帮助你明白。

最简单的可能是,如果你不想被执行(重复,僵尸等)

var ResultXml = XDocument.Load("file1.xml"); 
ResultXml.Root.Add(XDocument.Load("file2.xml").Root.Elements());