2013-12-11 10 views
0

У меня есть два XML-файла, и я создаю новый файл с двумя файлами в нем. Проблема здесь в том, что у обоих есть разные корневые узлы, и когда оба объединены вместе, я получаю фактически то, что я хотел сделать, но с двумя разными корневыми узлами, а не с XML-соответствием. Итак, как я могу добавить узел по умолчанию до того, как все остальное вставлено?Добавьте root, перед слиянием двух XML-файлов

структура выглядит следующим образом:

Файл 1:

<rootFile1> 
    //dataFile1 
</rootFile1> 

Файл 2:

<rootFile2> 
    //dataFile2 
</rootFile2> 

в сочетании с:

//missing root 
    <rootFile1> 
    //dataFile1 
    </rootFile1> 
    <rootFile2> 
    //dataFile2 
    </rootFile2> 
//missing root 

Мне нужен узел обертку здесь , для объединенного файла ,

Мой код выглядит следующим образом:

XmlTextReader xmlreader1 = new XmlTextReader(@"N:\File.xml"); 
    XmlTextReader xmlreader2 = new XmlTextReader(@"N:\File2.xml"); 

    using (var output = System.IO.File.Create(@"N:\OutputFile.xml")) 
    { 
     XElement root = new XElement("root"); 
     foreach (var file in new[] { @"N:\File.xml", @"N:\File2.xml" }) 
     { 
      using (var input = System.IO.File.OpenRead(file)) 
      { 
       input.CopyTo(output); 
      } 
     } 
     root.Add(output); 
    } 

Спасибо заранее, оценить его.

ответ

4

Попробуйте этот код:

XDocument doc1 = XDocument.Load("N:\File.xml"); 
XDocument doc2 = XDocument.Load("N:\File2.xml"); 
XDocument merged = new XDocument(new XElement("root", doc1.Root, doc2.Root)); 
merged.Save("N:\Merged.xml"); 
+0

спасибо. Было легче, чем ожидалось. – Alika87

Смежные вопросы