Подтвердить что ты не робот

Jsoup выбирает и перебирает все элементы

Я подключусь к URL-адресу через jsoup и получаю все содержимое, но вещь, если я выберет,

doc.select("body")

возвращает один элемент, но я хочу получить все элементы на странице и, например, перебрать их один за другим,

<html>
<head><title>Test</title></head>
<body>
<p>Hello All</p>
<a href="test.html">Second Page</a>
<div>Test</div>
</body>
</html>

Если я выбираю использование тела, я получаю результат в одной строке, например,

Test Hello All Second Page Test

Вместо этого я хочу выбрать все элементы и повторить их поочередно и произвести такие результаты, как

Test
Hello All
Second Page
Test

Возможно ли это с помощью jsoup?

Спасибо,
Картик

4b9b3361

Ответ 1

Вы можете выбрать все элементы документа с помощью селектора *, а затем получить текст каждого отдельно с помощью Element#ownText().

Elements elements = document.body().select("*");

for (Element element : elements) {
    System.out.println(element.ownText());
}

Ответ 2

Чтобы получить все элементы в теле документа с помощью библиотеки jsoup.

doc.body().children().select("*");

Чтобы получить только первый уровень элементов в элементах тела документа.

doc.body().children();

Ответ 3

Вы можете использовать XPath или любую библиотеку, содержащую XPath

выражение //text()

Проверьте выражение с помощью xml здесь