java - 解析列表中的 jsoup 得到错误的结果

标签 java android parsing android-listview jsoup

我正在解析此页面 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/

相关文章:

java - 使用共享首选项存储数据

java - 如何在Gradle项目中使用Mybatis Pagehelper插件?

php - swift 错误 : Error Domain=NSCocoaErrorDomain Code=3840 "Problems with my Login Controller "

java - sessionContext.getCallerPrincipal() 中的 NullPointerException

java - Android/Java - 从另一个文件调用 RingtoneManager 实例方法

Android 反调试失败与 android 库(绝对路径)

android - 即使时间过去了,也会重复调用警报

android - 在 Android 应用程序中使用哪个 WebSocket 库?

c# - 当字符串似乎与模式匹配时,TryParseExact 返回 false

.net - 正则表达式帮助,解析为 NameValueCollection