【发布时间】:2015-10-16 09:23:58
【问题描述】:
我正在使用 HtmlAgilityPack 解析一些数据并编写如下语句以删除不需要的内容 -
doc.DocumentNode.SelectNodes("//ul").ToList().ForEach(a => a.Remove());
当 HTML 文档中存在 <ul> 元素时,这很有效。但是,如果没有 <ul> 元素,则在将其转换为 .ToList() 时会出现 Value cannot by null 异常。
我不想使用以下 -
doc.DocumentNode.SelectNodes("//ul")== null ? null : doc.DocumentNode.SelectNodes("//ul").ToList().ForEach(a => a.Remove());
我有什么优雅的选择?
【问题讨论】:
-
您认为您提出的解决方案不优雅是什么? (当然,除了它不会编译!-
ForEach是无效的,而另一边的null不会合并) -
@Jamiec,我知道它不会编译,只是想分享我不想写的方式。这种方法在单个标签上使用时是可以的,但是假设我有大约 100 个标签并且我想删除它们。有很多代码要写,我知道我可以把它转换成一个函数,但这也不能正确地为函数提供服务。