如何从HTML中获得具有相同类属性的所有元素

本文关键字:同类 属性 元素 HTML | 更新日期: 2023-09-27 18:10:09

我开发了一个asp.net应用程序,其中我使用htmllility dll来获取所有<div>标签,这是相同的类属性。
如何从整个html页面获得所有具有相同类的元素,
我得到top 1div谁有class='myclass'但在,
我的情况下,我想所有的div标签谁拥有'myclass'类。

var vardoc = web.Load("<any website url>"); 
var varmyclass = doc.DocumentNode.SelectSingleNode("//div[@class='myclass']"); 

当我使用上述方法,然后我得到'myclass'的内部html内容,但在我的html内容有很多div标签谁有类'myclass'。我想让所有具有相同类的<div>使用htmllagility或其他

如何从HTML中获得具有相同类属性的所有元素

在这种情况下不要选择单个节点。

您正在使用SelectSingleNode,它将只返回一个节点。

SelectNodes代替:

var varmyclass = doc.DocumentNode.SelectNodes("//div[@class='myclass']");

基本上就是在XML文档中搜索这些节点。

首先,选择一个只返回1的节点。你需要使用SelectNodes

的例子:

var varmyclass = doc.DocumentNode.SelectNodes("//div[@class='myclass']");

更新-删除了我的Xpath建议,因为它没有像我想象的那样工作…

两个问题,第一个是您应该使用SelectNodes()而不是其他答案已经指出,因为您想要选择多个节点。

另外,XPath有一些限制。它只会得到只有一个类的div元素,myclass,但不包括那些有多个类的元素。我猜你也想包括这些。与其检查类是否相等,不如检查类是否包含相等。

var xpath = "//div[contains(@class,'myclass')]";
var query = doc.DocumentNode.SelectNodes(xpath);