我正在解析此页面 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)
...而不是像现在这两个东西在一行中。谢谢
最佳答案
使用getElementById
从解析的Document
中检索rom_table
,然后通过标签获取
.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
}
}
});
关于java - 解析列表中的 jsoup 得到错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23612906/