Jsoup 选择并迭代所有元素

发布于 2024-11-28 23:51:23 字数 608 浏览 0 评论 0 原文

我将通过 jsoup 连接到一个 url 并获取它的所有内容,但问题是如果我选择 like,

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 可以吗?

谢谢,
卡蒂克

I will connect to a url through jsoup and get all the contents of it but the thing is if I select like,

doc.select("body")

its returning a single element but I want to get all the elements in the page and iterate them one by one for example,

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

If I select using body I am getting the result in a single line like,

Test Hello All Second Page Test

Instead I want to select all elements and iterate one by one and produce the results like,

Test
Hello All
Second Page
Test

Will that be possible using jsoup?

Thanks,
Karthik

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

提笔落墨 2024-12-05 23:51:24

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

表达式为 //text()

使用 xml 这里

You can use XPath or any library which contain XPath

the expression is //text()

Test the expression with your xml here

各自安好 2024-12-05 23:51:23

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

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

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

You can select all elements of the document using * selector and then get text of each individually using Element#ownText().

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

for (Element element : elements) {
    System.out.println(element.ownText());
}
甜宝宝 2024-12-05 23:51:23

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

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

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

doc.body().children();

To get all of the elements within the body of the document using jsoup library.

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

To get just the first level of elements in the documents body elements.

doc.body().children();

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文