如何从HTML中获取所有具有相同class属性的元素?
我开发了一个 asp.net 应用程序,因为我使用 htmlagility dll 来获取所有具有相同类属性的
标签。如何从整个html页面中获取具有相同类的所有元素,
我得到了具有 class='myclass' 的前 1 位 div,但是在,
我的情况是我想要所有具有 'myclass' 类的 div 标签。
var vardoc = web.Load("<any website url>");
var varmyclass = doc.DocumentNode.SelectSingleNode("//div[@class='myclass']");
当我使用上面的方法时,我获取了“myclass”的内部 html 内容,但是在我的 html 内容中,有许多具有“myclass”类的 div 标签。 我想使用 HTMLagility 或其他方式获取具有相同班级的所有
I developing one asp.net application in that I using htmlagility dll to get all <div>
tags which is same class attributes..
How to get all elements who have same class from whole html page,
I getting top 1 div who having class='myclass' but in,
my case I want to all div tags who have 'myclass' class.
var vardoc = web.Load("<any website url>");
var varmyclass = doc.DocumentNode.SelectSingleNode("//div[@class='myclass']");
when I used above method then I getting inner html content of the 'myclass' but in my html contents there are many div tags who have class 'myclass'.
I want to get all <div>
who have same class using HTMLagility or other
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在这种情况下,不要选择单个节点。
您正在使用
SelectSingleNode
,它将仅返回一个节点。使用
SelectNodes
代替:Don't select a single node in that case.
You are using
SelectSingleNode
, which will return only one node.Use
SelectNodes
instead:您几乎是在 XML 文档中搜索这些节点。
首先,您选择一个仅返回 1 的节点。您需要使用 SelectNodes。
示例:
更新 - 删除了我的 Xpath 建议,因为它没有像我想象的那样工作......
You're pretty much searching an XML document for these nodes.
First off, you're selecting a single node which will only return 1. You need to use SelectNodes.
example:
Update - Removed my Xpath suggestion as it didn't work as I thought it would...
有两个问题,第一个问题是您应该使用
SelectNodes()
来代替,正如其他答案所指出的那样,因为您想要选择多个节点。另外,您的 XPath 有一点限制。它只会获取只有一个类
myclass
的div
元素,但不包括具有多个类的元素。我怀疑你也想包括这些。不是检查类是否相等,而是检查它是否包含它。Two issues, first one is that you should be using
SelectNodes()
instead as the other answers have pointed out since you want to select multiple nodes.Also, your XPath is a bit restrictive. It will only get
div
elements which has only one class,myclass
but doesn't include those that have multiple classes. I suspect you want to include those as well. Rather than checking if the class is equal, check if it contains it.