使用XDocument删除空元素

5

最初使用的是System.Xml.Linq dll版本3.5.0.0,我已经按照以下给出的方法删除了空元素

XDocument document = XDocument.Load(_fileName);                      
document.Descendants().Where(e => string.IsNullOrEmpty(e.Value)).Remove();
document.Save(_fileName, SaveOptions.DisableFormatting);

现在我的System.Xml.Linq dll版本是4.0.0.0,但上面的代码不起作用,因为我看不到Where子句。

有人能帮助我如何重写代码以删除4.0.0.0中的空元素吗?


你的代码文件中有 using System.Xml.Linq;using System.Linq; 吗? - Mike Hixson
1个回答

8
尝试这个:
        var document = XDocument.Parse(original);
        document.Descendants()
       .Where(a=> a.IsEmpty || String.IsNullOrWhiteSpace(a.Value))
       .Remove();

同时,您应该拥有以下命名空间:
using System.Linq;
using System.Xml.Linq;

抱歉,如我在上面提到的,System.Xml.Linq dll版本为4.0.0.0时没有Where子句。这将无法工作。 - Arun Kumar
我已经使用 System.Xml.Linq dll 版本 4.0.0.0 进行了编译。 - Sajeetharan
你的项目版本是什么? - Sajeetharan
项目版本为4.0。 - Arun Kumar
错误=System.collection.generic.IEnumerable<System.XML.Ling.Element>不包含where子句的定义。 - Arun Kumar
2
兄弟,你是否已经添加了 System.Linq 命名空间? - Sajeetharan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接