我正在解析此页面http://twixkat.altervista.org/download.html表格标签。这就是我正在做的事情:
private class SearchResult extends AsyncTask<Void, Void, String>{
String resultTextFmt;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = new ProgressDialog(FragmentThree.this);
mProgressDialog.setTitle("Twix Updates");
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
titoli = new ArrayList<String>();
descrizioni = new ArrayList<String>();
url = new ArrayList<String>();
}
@Override
protected String doInBackground(Void... params) {
try {
Document document =Jsoup.connect(URL.toString()).get();
// prendo gli elementi che mi interessano dalla tabella
Elements description2 = document.select("#rom_table");
for(Element sezione : description2)//per ogni sezione tra gli elementi ricavati prima
{
// ricavo il titolo
// (con .text() ottengo il testo non formattato
String titolo = sezione.select("tr").text();
String descrizione = sezione.select("a").text();
//-- mi prendo il link
String urldesc = sezione.select("a").first().attr("abs:href");
// inserisco nei rispettivi arraylist
titoli.add(titolo);
descrizioni.add(descrizione);
url.add(urldesc);
}
} catch (Exception e) {
e.printStackTrace();
/*Toast.makeText(FragmentThree.this, "Errore parsing",
Toast.LENGTH_SHORT).show();*/
Log.d("errore", "errore parsing");
}
return null;
}
@Override
protected void onPostExecute(String result) {
/*textView.setText(Html.fromHtml(resultTextFmt));*/
/*Toast.makeText(getActivity(), resultTextFmt,
Toast.LENGTH_SHORT).show();*/
ParsingArrayAdapter adapter = new ParsingArrayAdapter(FragmentThree.this, titoli, descrizioni);
lista.setAdapter(adapter);
mProgressDialog.dismiss();
}
}
它有效,但并不完全符合我的要求......它只给我列表中的一个项目,titolo
我有所有tr
标签..我想要的是两个项目列表,第一个标题为:LG Nexus 4 Alpha (04/18/2014)
,第二个LG Nexus 5 Alpha (04/19/2014)
...而不是现在这两个东西都在一行中。感谢
答案 0 :(得分:2)
使用getElementById
从已解析的rom_table
中检索Document
,然后按标记Elements
获取tr
。
final Document doc = Jsoup.connect("http://twixkat.altervista.org/download.html").get();
runOnUiThread(new Runnable() {
@Override
public void run() {
Element rootElement = doc.body().getElementById("rom_table");
Elements elements = rootElement.getElementsByTag("tr");
for(Element element : elements){
String titolo = element.select("tr").text();
String descrizione = element.select("a").text();
String urldesc = element.select("a").first().attr("abs:href");
// do your other stuff here to add to List
}
}
});