如何在C#中附加两个XML文档

时间:2013-07-03 16:51:03

标签: c# xml

我需要对远程URL进行两次调用,该URL返回XML,如下所示;

<results>
   <colours>
     <name>Red</name>
     <name>Green</name>
   </colours>
</results>

第二个回应就像

<results>
   <colours>
     <name>White</name>
     <name>Blue</name>
   </colours>
</results>

我遇到的问题是我需要将两个响应合并到一个XML文档中,我真的只想要一个结果Root节点。我怎么能这样做?因为目前我将它们合并在一起我得到一个错误,说我必须有一个根节点

修改

理想情况下,我希望结果看起来像

<results>
   <colours>
     <name>Red</name>
     <name>Green</name>
   </colours>
   <colours>
     <name>White</name>
     <name>Blue</name>
   </colours>
</results>

2 个答案:

答案 0 :(得分:3)

你可以这样做:

var doc1 = XDocument.Load(fileName1);
var doc2 = XDocument.Load(fileName2);

doc1.Root.Add(doc2.Root.Elements());
doc1.Save(fileName3);

答案 1 :(得分:0)

有一种方法可以做到这一点:

DataSet set1 = new DataSet();
DataSet set2 = new DataSet();
set1.ReadXml( new XmlTextReader( @"C:\File1.xml" ) );
set2.ReadXml( new XmltextReader( @"C:\File2.xml" ) );
set1.Merge( set2 );
set1.WriteXml( @"C:\File1WithFile2.xml" );