2013-07-25 8 views
7

Ich habe eine Zeichenfolge hinzufügen, die eine XML enthält, kann wie folgt sagen:C# eine Wurzel zu einem XDocument

<Novels> 
<Book> 
    <Title>Cat in hat</Title> 
    <Price>12</Price> 
</Book> 
</Novels> 

ich eine XDocument machen will, die wie folgt aussieht:

<Booklist> 
<Novels> 
    <Book> 
    <Title>Cat in hat</Title> 
    <Price>12</Price> 
    </Book> 
</Novels> 
</Booklist> 

I kann den XML-String in ein XDocument laden mit XDocument doc = XDocument.Parse(xmlString);

Wie würde ich das Dokument unter einem neuen Stamm laden. Ich kann mir etwas wie das Erstellen eines neuen XDocument mit der gewünschten Wurzel vorstellen und dann eine for-Schleife verwenden, um die Knoten als untergeordnete Elemente hinzuzufügen, aber gibt es dafür einen einfacheren Weg?

Antwort

14
XDocument yourResult = new XDocument(new XElement("Booklist", doc.Root)); 
7
var doc = new XDocument(new XElement("Booklist", source.Root)); 

Es erfordert nicht überhaupt keine Analyse. Es gibt eine tiefe Kopie von XElement, daher gibt es auch keine Referenzen zwischen alten und neuen Dokumenten.