如何获得"选择" Jsoup的html元素?

时间:2014-05-23 09:04:16

标签: java dom jsoup

<section class="my grid">

如何使用Jsoup来获取此元素(以及所有子元素)? 以下不起作用(为空):

Elements ul = doc.getElementsByClass("my grid");

3 个答案:

答案 0 :(得分:1)

Elements listGrids=new Elements
for(Element section:doc.getElementsByTag("section"))
{
        if(section.absUrl("Class).equals("my grid")
          listGrids.add(section);
}

我不知道为什么你当前的代码不起作用,但可能是因为你的值中有空格

Niko

答案 1 :(得分:1)

这个答案仅供您参考。这可以更容易地完成。就像

Elements ul = doc.select("section.my.grid");

或迭代为

for(Element section : doc.select("section.my.grid")){
    System.out.println(section.text());
}

<强>解释

实际上,您可以通过(DOT)选择器根据类过滤标记。请参阅here

例如 - el.class给出所有带有类的元素,例如: div.masthead选择具有类标头的所有div标签。所以在你的情况下,你有两个类“my”和“grid”用于section标签。所以只需过滤

Elements ul = doc.select("section.my");

or

Elements ul = doc.select("section.grid")

这将为您提供具有my或grid的class属性的所有section标签。但是如果你有多个“我的”类的组合,你只想“我的”和“网格”一起做嵌套。

Elements ul = doc.select("section.my.grid");

答案 2 :(得分:0)

类由空格分隔。在您的情况下,您可以在您的部分添加2个课程(&#34;我的&#34;和&#34;网格&#34;)。

如果您想要一个可读的课程,请使用&#34; - &#34;将它们分开。