2013-11-03 60 views
0

我是JAVA/Android開發新手。JSoup在變量中存儲文本

我做了一個應用程序,從HTML類中提取文本;

protected List<String> doInBackground(String... url) { 
     try { 
      Document doc = Jsoup.connect(
        "http://example/test.html").get(); 

      Elements st1 = doc.select("a[class*=subject_rating_details"); 

      for (Element element : st1) { 
       sgrade[0] = st1.get(0).text(); 
       sgrade[1] = st1.get(0).text(); 
       sgrade[2] = st1.get(0).text(); 
       sgrade[3] = st1.get(0).text(); 
       sgrade[4] = st1.get(0).text(); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     List<String> pinfo = null; 
     return pinfo; 
    } 

    @Override 
    protected void onPostExecute(List<String> pinfo) { 
     prog.dismiss(); 
    } 
} 

List<ListData> varlist = new ArrayList<ListData>(); 
String sgrade[] = new String[] {}; 

我用JSoup來從HTML類=「subject_rating_details」我的網頁不同的文本中提取。

但它強制關閉上面的代碼。

我可以成功地用一個單一的字符串中提取它,例如:

for (Element element : st1) { 
stringname = st1.get(0).text(); 
stringname = st1.get(1).text(); 
stringname = st1.get(2).text(); 
stringname = st1.get(3).text(); 
stringname = st1.get(4).text(); 
} 

但它僅存儲最後一個(字符串名稱= st1.get(4)的.text();)

我我也試過:

for (Element element : st1) { 
stringname1 = st1.get(0).text(); 
stringname2 = st1.get(1).text(); 
stringname3 = st1.get(2).text(); 
stringname4 = st1.get(3).text(); 
stringname5 = st1.get(4).text(); 
} 

但我需要在st1中的文本在一個單一的變量。

我該怎麼辦?

感謝

編輯

我想是這樣的:

字符串sgrade [] =新的String [] {};

for (Element element : st1) { 
       sgrade[0] = st1.get(0).text(); 
       sgrade[1] = st1.get(0).text(); 
       sgrade[2] = st1.get(0).text(); 
       sgrade[3] = st1.get(0).text(); 
       sgrade[4] = st1.get(0).text(); 

}

女巫後,我能讀每個文本和一個TextView顯示它:

textview1.setText(sgrade[0]); <--/// This would display "Ford" 
textview2.setText(sgrade[1]); <--/// This would display "Mustang" 
textview3.setText(sgrade[2]); <--/// This would display "2013" 

/// HTML /// 

... 

<p class="subject_rating_details">Ford</p> 
<p class="subject_rating_details">Mustang</p> 
<p class="subject_rating_details">2013</p> 

... 

/// HTML /// 

回答

0

請嘗試這種方式。有了這個,你將在名爲stringname的單個字符串中獲得st1的值。

List<String> stringname =new ArrayList<String>(); 

    for (Element element : st1) { 
stringname.add(st1.get(0).text()); 
stringname.add(st1.get(1).text()); 
stringname.add(st1.get(2).text()); 
stringname.add(st1.get(3).text()); 
stringname.add(st1.get(4).text()); 
} 
+0

好吧,我測試了這種方式,但它不適合我的需求。我想從JSoup中存儲字符串的文本,但更像列表,我可以使用像:textview.setText(stringname [0]); textview2.setText(字符串名稱[1]); – johnny243

+0

好的,然後聲明字符串名爲列表和for循環添加每個文本值列表。 –

+0

請給我一個示例代碼 – johnny243