当前位置: 首页 > 知识库问答 >
问题:

如何使用JSoup将标签和标签之间的文本提取到列表中

弘涛
2023-03-14

我有以下html:

<div class="CustomClass">
    Hi!<br/>
    <br/>
    Bla Bla bla<br/>
    <br/>
    <a href...></a>
    bla bla bla
    <iframe...></iframe>
    Thank you!
</div>
0->Hi!
2-><br/>
3->Bla Bla bla
4-><br/>
5-><a href...></a>
6->bla bla bla
7-><iframe...></iframe>
8->Thank you!

我尝试获取div元素的子元素,然后迭代子元素并将其转换为html,但这只返回标记元素,而忽略元素之间的文本。在理想情况下,文本将被p标记包围,但情况并非如此:S

如果我在div元素上使用element.ownText函数,那么我会得到没有标记的文本,我需要这两样东西,并且顺序正确:/

谢谢

共有1个答案

丌官凯康
2023-03-14
Document doc = Jsoup.parse("<div class=\"CustomClass\">Hi!<br/><br/>Bla Bla bla<br/><br/><a href...></a>bla bla bla<iframe></iframe>Thank you!</div>");
Element div = doc.selectFirst(".CustomClass");
List<Node> childNodes = div.childNodes();
for (int i = 0; i < childNodes.size(); i++) {
    Node node = div.childNodes().get(i);
    System.out.println(i + " -> " + node);
}

输出:

0 -> 
Hi!
1 -> <br>
2 -> <br>
3 -> Bla Bla bla
4 -> <br>
5 -> <br>
6 -> <a href...></a>
7 -> bla bla bla
8 -> <iframe></iframe>
9 -> Thank you!

 类似资料:
  • 问题内容: 我想从放置在和标记中的HTML页面提取文本,因此我可以开始对该页面进行标记化,以便为每个页面构造倒排索引,以便回答搜索查询。 我如何使用jsoup 获取标签 要在该参数中写入的字符串是什么? 问题答案: 这可以做的工作 这是您可以使用的所有选择器的列表。 假设您有这个html: 要获得结果,您应该使用: 要么 假设现在您具有以下复杂的html 要从两个标签中获取值,您必须执行以下操作

  • 我正在尝试从网站获取一些数据。它看起来像这样 我只需要得到div标签中的时间值。这是我的Java代码。 它没有给出任何错误,但在日志上 "D/NetworkSecurityConfig:未指定网络安全配置,使用平台默认设置" 我看到也许这可以帮助你解决问题。提前感谢您,任何回应将不胜感激。

  • 假设我在一个页面上有3个文本框,定义如下。 我将把值“Open”作为参数传递给JSoup,JSoup应该返回如下数据(这是中间文本框的详细信息)。 JSoup能做到吗? 谢谢您 -阿努普

  • 问题内容: 我正在使用Jsoup库读取URL。该网址的一些标记中包含文本。我可以在每个标签中获取文本吗?请注意,我不要求解析Javascript文件,因为我已经知道JSoup不允许这样做。URL的实际源代码在script标签中包含文本,我需要这样做。 这是源代码中的脚本标签之一: 问题答案: 是。您可以使用Element#getElementsByTag()获得所有标签。每个脚本标签将由DataN

  • 问题内容: 我正在尝试获取2 h1标签之间的所有html。实际的任务是根据h1(heading 1)标签将html分成几帧。 感谢任何帮助。 谢谢苏尼尔 问题答案: 如果要获取和处理两个连续标签之间的所有元素,则可以处理同级对象。这是一些示例代码:

  • 比如说我有如下一串: 如何仅提取“所需文本”?我猜Regex可能是最简单的方法,但Regex在我看来仍然像象形文字。