如何从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或其他
在这种情况下不要选择单个节点。
您正在使用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);