Linq XML添加新的父级

时间:2015-07-14 16:12:00

标签: c# xml linq

使用linq XML是否可以向现有节点添加新父? 拿这个XML摘录:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<items>
 <book>
  <title>Title 1</title>
  <author>Author 1</author>
 </book>
 <book>
  <title>Title 2</title>
  <author>Author 2</author>
 </book>
 <car>
  <model>Tesla</model>
 </car>
</items>

是否可以添加新的父亲&#34;书籍&#34;像这样预订:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<items>
 <books>
  <book>
   <title>Title 1</title>
   <author>Author 1</author>
  </book>
  <book>
   <title>Title 2</title>
   <author>Author 2</author>
  </book>
 </books>
  <car>
   <model>Tesla</model>
  </car>
</items>

这不起作用,因为它正在克隆节点:

doc.Element("items").Add(new XElement("books",doc.Element("items").Elements("book")));

1 个答案:

答案 0 :(得分:1)

您可以在新<book>父节点下添加现有<items>元素,从<books>节点删除它们:

var books = doc.Element("items").Elements("book");
doc.Element("items").Add(new XElement("books", books));
books.Remove();