2014-05-12 24 views
0

我正在解析這個頁面http://twixkat.altervista.org/download.html表格標籤。這是我在做什麼:解析列表中的jsoup會得到錯誤的結果

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) ...而不是現在這兩個東西在一行中。謝謝

回答

2

使用getElementById從解析的Document中檢索rom_table,然後通過標記tr獲取Elements

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 
         } 
        } 
       });