我正在尝试使用Android / Java / JSoup从网站上删除一些数据,但我无法使用下面显示的网址中的表格数据更新我的textview。
我相信我已经完成了几乎所有关于我的JSOUP实现来解析表数据的一切,但由于某些奇怪的原因,我仍然无法查看我在执行以下操作时尝试获取的数据:
来源:
package com.example.test;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tv;
final String URL = "http://sheriff.org/apps/arrest/results.cfm?lname=&fname=";lname=&fname=";
String tr;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.TextView01);
new MyTask().execute(URL);
}
private class MyTask extends AsyncTask<String, Void, String> {
ProgressDialog prog;
String title = "";
@Override
protected void onPreExecute() {
prog = new ProgressDialog(MainActivity.this);
prog.setMessage("Loading....");
prog.show();
}
@Override
protected String doInBackground(String... params) {
try {
Document doc = Jsoup.connect(params[0]).get();
Elements tableElement = doc.select(".datagrid");
Element th = doc.select("tr").first();
Element firstTh = th.select("th").first();
title = firstTh.text();
} catch (IOException e) {
e.printStackTrace();
}
return title;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
prog.dismiss();
tv.setText(result);
}
}
}
答案 0 :(得分:0)
这可能是你的问题:
final String URL = "http://http://sheriff.org/apps/arrest/results.cfm?lname=&fname=";
尝试:
final String URL = "http://sheriff.org/apps/arrest/results.cfm?lname=&fname=";
答案 1 :(得分:0)
我想我可以为你解析。至少它适用于Java。只需将System.out.println部件更改为其他部分,即可在UI上显示数据。您可以使用cells.get(i)来获取表格单元格的内容。
try {
doc = Jsoup.connect(params[0]).get();
Element tableElement = doc.select(".datagrid").first();
Elements tableRows = tableElement.select("tr");
for (Element row : tableRows) {
Elements cells = row.select("td");
if (cells.size() >0) {
System.out.println(cells.get(0).text()+"; "+cells.get(1).text()+"; "+cells.get(2).text()+"; "+cells.get(3).text());
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 2 :(得分:0)
因为你的网址错了:
final String URL = "http://sheriff.org/apps/arrest/results.cfm?lname=&fname=";lname=&fname=";
它应该改为
String url = "http://sheriff.org/apps/arrest/results.cfm?lname=FOO&fname=BAR";
以下是您必须搜索的参数名称和姓氏:
lname=FOO&fname=BAR;
如果你改变它,它会起作用,如果你想试试这个:
http://sheriff.org/apps/arrest/results.cfm?lname=&fname=bob