Jsoup选择查询具有相同类名的多个元素

时间:2018-01-30 07:53:04

标签: java jsoup

这看起来像DOM:

<div class="content-section generic-section">
<div class="content-section generic-section">
<div class="content-section generic-section">

我需要从每个div元素中获取内容。使用select查询时,所有三个内容都在同一个变量中获取。如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

重新:

  

使用select查询时,所有三个内容都在同一个变量中获取。

所有三个都将被分配给Elements的一个ArrayList类型的实例,因此,为了查询这三个元素中的每一个,你可以

  • 迭代ArrayList:for (Element element : elements) { ... }
  • 按位置选择条目:elements.get(0)elements.get(1)
  • 使用Elementsprev()
  • next()进行迭代
  • 选择first()last()
  • 使用访问者模式traverse() Elements
  • 获取每个条目的textelements.eachText()

the Javadocs

中的更多选项

答案 1 :(得分:0)

您可以使用select方法获取Elements对象。 正如@glyching所提到的,你可以遍历它。 我使用forEach创建了测试代码,如下所示。

public void test() {

    Document doc = Jsoup.parse("<html><body><div class=\"content-section generic-section\">contents1</div><div class=\"content-section generic-section\">contents2</div><div class=\"content-section generic-section\">contents3</div></body></html>");
    // get div elements
    Elements elements = doc.select("div.content-section.generic-section");

    // display "contents1" "contents2" "contents3"
    elements.forEach(element -> System.out.println(element.text()));
}