2014-05-12 3 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 
         } 
        } 
       });