XDocument删除节点

Ice*_*shi 2 c# linq-to-xml code-snippets

如何从已加载的XDocument中删除特定节点?我的XML文档如下所示:

<Snippets>
  <Snippet name="if">
    <SnippetCode>      
 if (condition)
 {
 }
    </SnippetCode>
</Snippet>

<Snippets>
  <Snippet name="foreach">
    <SnippetCode>      
 ...
    </SnippetCode>
</Snippet>

....

</Snippets>
Run Code Online (Sandbox Code Playgroud)

所以说如果我只想删除foreach片段,我该怎么做?我尝试了doc.Descendants.Remove(),但它对我不起作用(节点没有被删除).

编辑 - 在该注释中,我如何重命名代码段并通过代码编辑代码段?我还没有调查过,但一些帮助将不胜感激.

jb.*_*jb. 5

未经测试,但这应该工作.如果您想要解释,请告诉我.

xdoc.Descendents("Snippet").Where(xe => xe.Attribute("name") != null 
    && xe.Attribute("name").Value == "foreach").Single().Remove()
Run Code Online (Sandbox Code Playgroud)