java - 为什么 getElementsByClass 在 jsoup 中不起作用?

标签 java html-parsing jsoup

我试图通过类名获取一些元素。这是 HTML 文件:

<div id="container">
    <div id="page_clips">
        <div id="content" class="margin-right-5">
            <div class="product-grid margin-left-5">
                <div>.....</div>
                <div>.....</div>
                <div>.....</div>
             </div>
        </div>
    </div>
</div>

在这里,我想要得到的是具有 class="product-grid margin-left-5"的 div。 这就是我所做的:

Document doc = Jsoup.connect(link).get();
Element page_clips = doc.getElementById("page_clips");
Element page_clip_content = page_clips.getElementById("content");

这段代码成功获取了id为“content”的div。然后当我尝试时,

Elements elementsIWantToGet= page_clip_content.getElementsByClass("product-grid margin-left-5");

它返回空。我究竟做错了什么?该 div 的类属性名称不是“product-grid margin-left-5”吗?有人可以帮忙吗?

谢谢

最佳答案

因为 getElementsByClass 不支持多个类名。通过给予它"product-grid margin-left-5" ,您的意思是查找具有 两个 类的所有元素吗?或者任一类?

无论哪种方式,请使用 select ,它接受 CSS 选择器:

对于具有两者的元素:

.. = page_clip_content.select(".product-grid.margin-left-5");

对于具有任一的元素:

.. = page_clip_content.select(".product-grid, .margin-left-5");

关于java - 为什么 getElementsByClass 在 jsoup 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21658504/

相关文章:

java - 使用 spring boot 应用程序属性设置 tomcat 属性

java - API 级别较低的设备上的 Android UnkownHostException

html - 从 html 正文中获取文本

java - 从 JSOUP 中的表中选择 tr

java - Jsoup 使用 select 时忽略嵌套标签

java - Jsoup 无法连接(有时)

java - 如何在使用 spring jdbc 模板获取时自动格式化时间戳列?

java - 无法访问 ValueChangeListener 之外的 UIComponent 值

java - 使用 W3C 文档对象模型如何为特定文本插入标签

python - 使用python从html元标记中确定字符集