2011-02-22 78 views
0

我想使用LINQ to XML从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> 

结构(架构)应保持原样,并且所选择的元件应该保持在XML文档。

,我试图查询帮助我找到该元素从XML,但是,我怎么维护XML结构

+0

请参考http://stackoverflow.com/questions/1648221/deleteing-whole-sections-of-my-xml-file-in-c/1648232#1648232一个解决类似涉及从文档中过滤和删除子元素的问题。 – 2011-02-22 19:18:43

+0

这只适用于单一元素! – genericuser 2011-02-22 19:25:51

回答

1

编写一个查询,找到你要删除,并删除它们的节点。

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