确定一个节点是否存在于HTMLAgiltyPack
问题描述:
我想运行foreach
循环的HtmlNode
已经从网络上通过HtmlWeb
类和loadFromWebAsync
方法解析。在运行循环之前,我想确保节点存在于HtmlDocument
中。如何在没有帮助Xpath
查询的情况下检查此问题,因为Windows RT
和Windows 8.1
版本中的许多版本不适用于此操作。确定一个节点是否存在于HTMLAgiltyPack
答
您可以使用LINQ .Any()
的方法来检查,如果序列中包含的任何元素,例如:
var doc = new HtmlDocument();
.....
var isDivExist = doc.DocumentNode
.Descendants("div")
.Any();
还是要检查序列中的任何节点满足特定条件:
var isDivWithSpecificClassExist = doc.DocumentNode
.Descendants("div")
.Any(d => .GetAttributeValue("class", "") == "foo");