Linq XML添加新的父元素
本文关键字:元素 XML 添加 Linq | 更新日期: 2023-09-27 18:02:34
使用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>
是否可以像这样添加一个新的父亲"books"到book:
<?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")));
您可以将现有的<book>
元素从<items>
节点中删除,然后将它们添加到新的<books>
父节点下:
var books = doc.Element("items").Elements("book");
doc.Element("items").Add(new XElement("books", books));
books.Remove();