2012-09-06 56 views
1

我試圖使用Jsoup將文本從HTML文檔轉換爲ArrayList。我的文檔看起來像這樣。在使用Jsoup的html標記之後獲取文本並創建ArrayList

<p> 
    <b>1</b>First Text 
    <b>2</b>Second Text 
    <b>3</b>Third Text 
    . 
    . 
    . 
    . 
</p> 

從上面的文件,我想創建像下面的數組。

list{[First Text],[Second Text],[Third Text]} 

感謝您的幫助。

試着用下面的代碼,但只獲取數字。

Document doc1 = Jsoup.parse(chapter); 
Element vve = doc1.body(); 
Elements vvv = doc1.select("p").select("b"); 

我的結果是

vvv.get(0) = <b>1</b> 
vvv.get(1) = <b>2</b> 
. 
. 
. 
+0

我試着用下面的代碼。但我得到的數字只有1 2 3 Document doc1 = Jsoup.parse(chapter); Element vve = doc1.body(); 元素vvv = doc1.select(「p」)。select(「b」); – rgeddam

回答

3

這是我昨晚完成的完整代碼。

 Elements elements = doc.body().select("p").select("b"); 
     for(int i=0; i<elements.size(); i++){ 
      Element para = elements.get(i); 
      versesList.add(para.nextSibling().toString()); 
     } 
+0

如果這解決了您的問題,請將此主題標記爲finnished :-) – ollo

+0

我該怎麼做?使其完成 – rgeddam

+0

我想你做了alreay,因爲有一個綠色的檢查。 – ollo

0

這將有助於

Elements elements = doc.body().select("p"); 

for(int j=0;j<elements.size();j++){ 
    Element para = tblelements.get(j); 
    String value = para.select("b").get(i).text(); 
} 
+0

我只收到價值1。如果我不打印循環文本,我越來越喜歡這個 – rgeddam

+0

值,如果你中央社改變你的HTML這樣 第三個文本 比你可以試試 - para.select(「跨度「)獲得(I)的.text(); – Sanath

+0

else else para.get(i).text(); 這將返回整個paragrapgh ..然後迭代每一行,刪除標籤並根據需要格式化您的輸出 – Sanath

0

讓我們試試這個:

final String html = "<p> ... "; // your HTML here 

Document doc = Jsoup.parse(html); 
List<String> list = new ArrayList<>(); 


for(Element element : doc.select("b")) 
{ 
    list.add(element.nextSibling().toString()); 
} 

注:您可以使用List<Node>,那麼你只需要刪除toString()的電話。