1

This my 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>

I need the text from the (div class="open-status" id="trails-status-scripted"), I cant do it. I use this code for the first class, with no problems, but I can't do it for the second 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();

Any clue?

Davide Pastore
  • 8,678
  • 10
  • 39
  • 53
Agustin Scalisi
  • 551
  • 3
  • 17

3 Answers3

0

Simplify in this way:

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();
    }
}
Ruben
  • 108
  • 1
  • 10
0

Done. I resolved with this code

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();
Davide Pastore
  • 8,678
  • 10
  • 39
  • 53
Agustin Scalisi
  • 551
  • 3
  • 17
0

Since in HTML all IDs must be unique, so you can simply use this selector.

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

Notes:

  • #foo equals to *[id=foo]
  • .foo equals to *[class=foo]
Community
  • 1
  • 1
frogatto
  • 28,539
  • 11
  • 83
  • 129