Как скопировать узлы из одного XML-файла в другой?

Я хотел бы скопировать родительский узел и дочерние узлы из одного XML-файла в другой. В приведенном ниже примере я хотел бы скопировать элементы из файла № 2 в файл № 1:

Входной файл №1:

<Top>
  <Items>
    <Item>one</Item>
    <Item>two</Item>
  </Items>
</Top>

Входной файл №2:

<Top>
  <Items>
    <Item>three</Item>
    <Item>four</Item>
  </Items>
</Top>

Я хочу, чтобы окончательный файл XML выглядел следующим образом:

<Top>
  <Items>
    <Item>one</Item>
    <Item>two</Item>
  </Items>
  <Items>
    <Item>three</Item>
    <Item>four</Item>
  </Items>
</Top>

Я попытался использовать следующий нефункциональный код. Вызов InsertAfter не работает с XML-файлами. Любая помощь?

XmlDocument prev = new XmlDocument(); prev.Load(filename1);
XmlDocument curr = new XmlDocument(); curr.Load(filename2);
XmlNode prev_node = prev.SelectSingleNode("Items");
XmlNode curr_node = curr.SelectSingleNode("Items");
prev.InsertAfter(curr_node, prev_node);

Огромное спасибо!


person moose    schedule 30.04.2014    source источник


Ответы (1)


Вы можете использовать LINQ to XML:

var prev = XDocument.Load(filename1);
var curr = XDocument.Load(filename2);
prev.Root.Add(curr.Root.Elements());
person MarcinJuraszek    schedule 30.04.2014
comment
Идеальный! Я не признаюсь, сколько времени я потратил на это прошлой ночью безрезультатно. Спасибо! - person moose; 30.04.2014
comment
Большое спасибо .. @MarcinJuraszek .. И я также хочу вставить корневой узел .. Пожалуйста, скажите мне .. - person Srinivas; 13.10.2014