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

本文关键字:两个 文档 XML | 更新日期: 2023-09-27 18:20:57

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

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

第二个响应类似

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

我遇到的问题是,我需要将两个响应合并到一个XML文档中,并且我真的只想要一个resultsRoot节点。我怎样才能做到最好?因为现在如果我把它们合并在一起,我会收到一个错误,说我必须有一个根节点

编辑

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

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

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

您可以这样做:

var doc1 = XDocument.Load(fileName1);
var doc2 = XDocument.Load(fileName2);
doc1.Root.Add(doc2.Root.Elements());
doc1.Save(fileName3);

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

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" );