Получить текст после тега html с помощью Jsoup и создать ArrayList

Я пытаюсь получить текст из HTML-документа в ArrayList, используя Jsoup. Мой документ выглядит так.

<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>
.
.
.

person rgeddam    schedule 06.09.2012    source источник
comment
Я пробовал со следующим кодом. но я получаю только такие числа, как 1 2 3 Document doc1 = Jsoup.parse(chapter); Элемент vve = doc1.body(); Элементы vvv = doc1.select(p).select(b);   -  person rgeddam    schedule 06.09.2012


Ответы (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());
        }
person rgeddam    schedule 06.09.2012
comment
Если это решило вашу проблему, пожалуйста, отметьте эту тему как завершенную :-) - person ollo; 07.09.2012
comment
как мне это сделать? сделать это законченным - person rgeddam; 13.09.2012
comment
я думаю, вы уже сделали это, потому что есть зеленый чек. - person ollo; 13.09.2012

Это поможет

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();
}
person Sanath    schedule 06.09.2012
comment
Я получаю только значение 1. Если я не печатаю текст в цикле, я получаю такое значение ‹b›1‹/b› - person rgeddam; 06.09.2012
comment
если вы можете изменить свой html следующим образом ‹b›3‹/b›‹span›Third Text‹/span›, вы можете попробовать - para.select(span).get(i).text(); - person Sanath; 06.09.2012
comment
иначе попробуйте этот para.get(i).text(); это вернет весь параграф. Затем повторите каждую строку, удалите теги ‹b› ‹/b› и отформатируйте вывод по мере необходимости. - person Sanath; 06.09.2012
comment
вы использовали кодировку UTF-8? Документ документа = Jsoup.parse(conn.getInputStream(), UTF-8,); - person Sanath; 06.09.2012

Давайте попробуем это:

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().

person ollo    schedule 06.09.2012