Jsoup选择并迭代所有元素

时间:2011-08-12 06:22:48

标签: java jsoup

我将通过jsoup连接到一个url并获取它的所有内容但是如果我选择的话就是这样,

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>

如果我选择使用body,我会在一行中得到结果,例如

Test Hello All Second Page Test

相反,我希望选择所有元素并逐个迭代并生成结果,如

Test
Hello All
Second Page
Test

使用jsoup会有可能吗?

谢谢,
KARTHIK

3 个答案:

答案 0 :(得分:52)

您可以使用*选择器选择文档的所有元素,然后使用Element#ownText()分别获取每个元素的文本。

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

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

答案 1 :(得分:1)

使用jsoup库获取文档正文中的所有元素。

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

获取文档正文元素中的第一级元素。

doc.body().children();

答案 2 :(得分:0)

您可以使用XPath或任何包含XPath的库

表达式为//text()

使用xml here

测试表达式