C# Adding a root to an XDocument

筅森魡賤 提交于 2020-01-02 02:38:06

问题


I have a string that contains an XML, lets say like this:

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

I want to make an XDocument that looks like this:

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

I can load the xml string into an XDocument using XDocument doc = XDocument.Parse(xmlString);

How would I load the document under a new root. I can think of something like creating a new XDocument with the root I want and then using a for loop to add the nodes as children, but is there an easier way of doing this?


回答1:


XDocument yourResult = new XDocument(new XElement("Booklist", doc.Root));



回答2:


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

It does not require any parsing at all. There is a deep copy of XElement made, so there is also no references between old and new documents.



来源:https://stackoverflow.com/questions/17862427/c-sharp-adding-a-root-to-an-xdocument

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!