2013-07-25 12 views
7

ho una stringa che contiene un file XML, permette di dire in questo modo:C# Aggiunta di una radice di un XDocument

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

Voglio fare un XDocument che assomiglia a questo:

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

I può caricare la stringa xml in un XDocument utilizzando XDocument doc = XDocument.Parse(xmlString);

Come caricare il documento in una nuova radice. Posso pensare a qualcosa come creare un nuovo XDocument con la radice che voglio e poi usare un ciclo for per aggiungere i nodi come figli, ma c'è un modo più semplice per farlo?

risposta

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

non richiede alcuna analisi a tutti. Esiste una copia profonda di XElement, quindi non ci sono riferimenti tra vecchi e nuovi documenti.