如何删除所有后代都为空的元素

时间:2013-10-18 08:10:53

标签: xml linq-to-xml xelement

我想删除所有列为空的根目录中的所有行。

<root>
  <row>
    <column></column>
    <column></column>
  </row>
  <row>
    <column></column>
    <column>data</column>
  </row>
<root>

我尝试了xDocument.Descendants(&#34; row&#34;)。元素(&#34;列&#34;)。其中(e =&gt; e.IsEmpty || String.IsNullOrWhiteSpace(e.Value) ))删除();

但最终以

结束
<root>
  <column>data</column>
<root>

我期望的结果;

<root>
  <column></column>
  <column>data</column>
</root>

1 个答案:

答案 0 :(得分:1)

以下是您的需求:

xDocument.Descendants("row").Where(r => r.Elements().All(e => e.IsEmpty || String.IsNullOrEmpty(e.Value))).Remove()