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

时间:2014-02-09 11:29:57

标签: 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的class属性的名称不是“product-grid margin-left-5”吗?有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:4)

因为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");