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?
Спасибо,
Картик
Ответы
Ответ 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 здесь