使用LINQ to XML从xml中删除子元素

时间:2011-02-22 19:09:37

标签: xml linq-to-xml

我想使用LINQ to XML从XML文档中删除子元素。

示例XML:

<MainElement>
<otherelement />
<removeElement att='1'>
<removeElement att='2'>
<removeElement att='3'>
<removeElement att='4'>
</MainElement>

我希望输出为

<MainElement>
<otherelement />
<removeElement att='2'>
</MainElement>

结构(Schema)应保持原样,所选元素应保留在XML文档中。

我尝试的查询帮助我从XML中找到该元素,但是,如何维护XML结构

1 个答案:

答案 0 :(得分:1)

编写查询以查找要删除的节点并将其删除。

XDocument doc = ...;
doc.Root
   .Elements("removeElement")
   .Where(e => (int)e.Attribute("att") != 2)
   .Remove(); // removes all elements in this query