2016-05-20 2 views
-1

Очень простой. У меня есть 2 документаКак добавить XML в другой XML-документ ВНЕ ВСЕХ узлов

doc1

<Person> 
<Name>Bob</Name> 
</Person> 

doc2

<Animal> 
<Name>Zippy</Name> 
</Animal> 

И я хочу, чтобы создать

Doc3

<Person> 
<Name>Bob</Name> 
</Person> 
<Animal> 
<Name>Zippy</Name> 
</Animal> 

код у меня ниже близко, но вставка XML I Nside другой один, и я не хочу, чтобы

string xmlUserData = GetUserData(fileId); 
     string xmlPurchaseDate = GetPurchaseData(); 

     XDocument xdocUserData = XDocument.Parse(xmlUserData); 
     XDocument xdocPurchaseDate = XDocument.Parse(xmlPurchaseDate); 


     XElement xe1 = xdocUserData.Descendants("USERDATA").FirstOrDefault(); 
     XElement xe2 = xdocPurchaseDate.Descendants("PurchaseAdvice").FirstOrDefault(); 
     xe1.Add(xe2.Nodes()); 
+3

Ваш окончательный "документ" ISN» t XML-документ - документ XML может содержать только один корневой элемент. –

+0

Джон прав, то, что вы пытаетесь создать, - это фрагмент xml. – Kevin

+0

Хакерный способ сделать это, сгенерирует 2 xml документа в виде файлов, затем добавьте два файла вместе. Однако, как отмечали другие, это не XML-документ –

ответ

1

Да, вы можете обернуть элементы в корне:

XDocument doc = new XDocument(); 
XElement rootElement = new XElement("Root"); 
rootElement.Add(new XElement("person")); 
rootElement.Add(new XElement("animal")); 
doc.Add(rootElement); 

дает:

<Root> 
    <person /> 
    <animal /> 
</Root> 
+0

Да! Я заменил новый XElement теми, которые у меня есть. – punkouter

+0

Да, я думал, что оставлю вам немного работы :) – Crowcoder