Jsoup 从 div class 获取文本

Jsoup get text from div class

这是我的html

<div class="open-statuses">

  <div class="open-status" id="lifts-status-scripted">
    <h3>Lifts</h3>
    <div class="status-graph">
      <canvas width="177" height="177"></canvas>
      <div class="open-number">04</div>
      <div class="total-number">4</div>
    </div>
    <a href="/lifts-and-trails/" class="details">Details</a>
  </div>
  <div class="open-status" id="trails-status-scripted">
    <h3>Trails</h3>
    <div class="status-graph">
      <canvas width="177" height="177"></canvas>
      <div class="open-number">12</div>
      <div class="total-number">169</div>
    </div>
    <a href="/lifts-and-trails/" class="details">Details</a>
  </div>

  <div class="open-status open" id="road-status-scripted">
    <h3>Road</h3>
    <div class="status-graph">
      <canvas width="177" height="177"></canvas>
      <div class="status-message">Open</div>
    </div>
    <a href="/mountain-report/road-conditions/" class="road-conditions">Road Conditions</a>
  </div>
</div>

我需要来自 (div class="open-status" id="trails-status-scripted" 的文本,我做不到。我将此代码用于第一个 class,没有任何问题,但我无法将其用于第二个 div class.

Elements div1=document.select("#mountain-report-page");
Elements div2=div1.select(".open-statuses-holder");
Elements div3=div2.select(".open-statuses");
Jliftbig = div3.select("div.open-number").first().ownText();

有线索吗?

这样化简:

Elements div = doc.select("div[id=mountain-report-page] div[class=open-statuses-holder] div[class=open-statuses] div[class=open-status]");

for (Element e : div){
    if (e.id().equals("trails-status-scripted")){
        Element ele = e.select("div[class=status-graph] div[class=open-number]").first();
        String str = ele.text();
    }
}

完成。我用这段代码解决了

Element div = document.select("div[id=mountain-report-page] div[class=open-statuses-holder] div[class=open-statuses] div[class=open-status] ").get(2);
String Jtrails = div.select("div.open-number").first().ownText();

因为在HTML所有ID中must be unique,所以你可以简单地使用这个选择器。

Element div = document.select("#trails-status-scripted .open-number");

备注:

  • #foo 等于 *[id=foo]
  • .foo 等于 *[class=foo]