XDocument删除节点

use*_*348 5 c# linq-to-xml

我有一个XML文件

<rows>
  <head>
    <beforeInit>
      <call command="attachHeader">
        <param>#text_filter,#text_filter,#text_filter,#text_filter,#text_filter,#text_filter</param>
      </call>
    </beforeInit>
    <afterInit>
      <call command="enablePaging">
        <param>recinfoArea</param>
      </call>
     </afterInit>
    <column width="100" align="center" type="ro" sort="server" color="undefined" id="Id">Id</column>
    <column width="100" align="center" type="ro" sort="server" color="undefined" id="NazovProjektu">NazovProjektu</column>
   </head>
</rows>
Run Code Online (Sandbox Code Playgroud)

我想删除beforeInit和afterInit元素.

我试过了

xml.Elements().Where(e=>e.Name == "beforeInit" || e.Name == "afterInit").Remove();
Run Code Online (Sandbox Code Playgroud)

但没有运气.

Ste*_*kel 15

如果你想删除每个出现的beforeInit或afterInit你可以使用

xml.Descendants().Where(e=>e.Name == "beforeInit" || e.Name == "afterInit").Remove();
Run Code Online (Sandbox Code Playgroud)

(后代而不是元素).elements()返回直接子节点的列表,而后代返回每个节点.

  • `e.Name`应该是`e.Name.LocalName`吗? (3认同)