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]
这是我的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]