使用Jsoup在TextView中显示单元格表格数据
问题描述:
我想在滑雪度假区的过去24小时内在TextView
中显示Snow。我使用了CSS路径并尝试了其他方式,但没有任何反应,TextView
不显示任何内容。使用Jsoup在TextView中显示单元格表格数据
的网页:http://www.arizonasnowbowl.com/resort/snow_report.php
的CSS路径:#container的> div.right> table.interior> TBODY> TR:第n个孩子(2)> td.infoalt
private class Description extends AsyncTask<Void, Void, Void> {
String desc;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = new ProgressDialog(Snowreport.this);
mProgressDialog.setTitle("Snow Report");
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
try {
// Connect to the web site
Document document = Jsoup.connect(url).get();
Elements elms = document.select("td.infoalt");
for(Element e:elms)
if(e.className().trim().equals("infoalt"))
//^^^<--trim is required as,
// their can be leading and trailing space
{
TextView txtdesc = (TextView) findViewById(R.id.snowp24);
txtdesc.setText((CharSequence) e);
}
mProgressDialog.dismiss();
} catch (IOException e1) {
e1.printStackTrace();
}
return null;
}
答
代码:
Element div = doc.getElementById("contentinterior");
Elements tables = div.getElementsByTag("table");
Element table = tables.get(1);
String mSnow = table.getElementsByTag("tr").get(1).getElementsByTag("td").get(1).text();
答
你对于选择参数可能有错误的String
。通过在Chrome浏览器中右击,轻松完成网页的“检查元素”,即可找到用作Document.select()
参数的正确选择。
下面的代码可能会产生更好的结果给你:
final Elements tableElements = response.parse()
.getElementsByClass("info")
.select("td");
for (Element element : tableElements) {
String string = element.getElementsByClass("infoalt").text().trim()
Log.d("Jsoup", string);
}
好运和快乐编码!
谢谢!!!!我收到消息“无法解析符号响应” – 2015-02-08 14:48:24
您需要在上面的代码之前添加一个Jsoup响应。最终Connection.Response响应= Jsoup.connect(mUrl).method(Connection.Method.POST).timeout(10000).execute(); – 2015-02-08 16:53:55