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

时间:2011-09-28 18:34:51

标签: c# html xpath html-agility-pack

我开发了一个asp.net应用程序,因为我使用htmlagility dll来获取所有<div>标签,这些标签是相同的类属性。
如何从整个html页面获取所有具有相同类的元素,
 我得到了排名第一的div,他们有类='myclass'但是,在  我的情况我想要所有拥有'myclass'类的div标签。

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

当我使用上面的方法然后我得到'myclass'的内部html内容但是在我的html内容中有许多div标签有'myclass'类。 我希望使用HTMLagility或其他

获得所有具有相同类的<div>

3 个答案:

答案 0 :(得分:1)

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

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

改为使用SelectNodes

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

答案 1 :(得分:0)

您正在搜索这些节点的XML文档。

首先,您选择的单个节点只返回1.您需要使用SelectNodes。

示例:

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

更新 - 删除了我的Xpath建议,因为它没有按我认为的那样工作......

答案 2 :(得分:0)

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

此外,您的XPath有点限制。它只会获得只有一个类div的{​​{1}}元素,但不包含具有多个类的元素。我怀疑你想要包括那些。而不是检查类是否相等,检查它是否包含它。

myclass