Достать значение из тэга. Парсинг html

362
06 сентября 2017, 12:35

Использую библиотеку JSOUP. Вот кусок HTML, который я парсю:

<div class="mp_text">       
    <div id="news-id-XXX" style="display:inline;">Текст статьи</div>    
</div>

При помощи следующего куска кода, я достаю значение Текст статьи:

Elements elements = doc.select(".mp_text");
for (Element el : elements) {
    list.add(el.text());
}

Но мне нужно достать значение news-id-XXX, текст самой статьи меня не интересует. Перепробовал многие комбинации кода - не получается. Пожалуйста, помогите :)

Answer 1

С помощью doc.select(".mp_text") вы получаете родительский div, внутри которого находятся интересующие вас статьи. Вам нужно либо обратиться к дочерним элементам el, либо при выборе элементов сразу взять дочерние. Ниже реализация 2го варианта:

List<String> list = new ArrayList<>();
String html =
        "<html>" +
        "<body>" +
        "   <div class=\"mp_text\">" +
        "       <div id=\"news-id-XXX\" style=\"display:inline;\">Текст статьи</div>" +
        "   </div>" +
        "</body>" +
        "</html>";
Document doc = Jsoup.parse(html);
Elements elements = doc.select(".mp_text div");
for (Element el : elements) {
    list.add(el.id());
}
System.out.println(list); //[news-id-XXX]
READ ALSO
Как зафиксировать текст

Как зафиксировать текст

Как зафиксировать текст, что бы при разных разрешениях он не делился пополам, а переносился полностью?

279
Нужно вывести элементы массива циклом в таблице

Нужно вывести элементы массива циклом в таблице

Есть база данных, в ней содержатся данные по объектамНеобходимо в виде таблицы циклом вывести данные (5 значений из 50)

229
Нажатием на один инпут выделялись все

Нажатием на один инпут выделялись все

Задача такая, что при нажатии на один чекбокс, нужно чтобы выделялись всеЯ понимаю как реализовать это когда они идут один за другим, но мне...

268
PHP &ldquo;хлебные крошки&rdquo;

PHP “хлебные крошки”

Здравствуйте! Необходимо сделать навигацию(хлебные крошки):

379