当前位置: 首页 > 面试题库 >

如何使用Jsoup获取孤立文本?

沈飞跃
2023-03-14
问题内容

我有一个html:

<span>This is the first text</span>
More text here 
Another line of text
<span>Text in the span</span>
<span>Another text in span</span>
This is another line

我想按顺序获取所有文本,例如以下数组:

[
"Span:This is the first text",
"More text here",
"Another line of text",
"Span:Text in the span",
"Span:Another text in span",
"This is another line",
]

问题答案:

我将使用一种递归方法,该方法采用您的开始标记并对其子节点进行迭代。对于每个TextNode,打印内容。对于每个元素,检查它的子节点。

public static void main(String[] args) throws ParseException, IOException
{
    //I put your HTML in the body tag in a local file
    Document doc = Jsoup.parse(new File("input/20160505.html"), "UTF-8");
    Elements elements = doc.getElementsByTag("body");
    Element rootTag = elements.get(0);
    printTextOfTag(rootTag);
}

public static void printTextOfTag(Element currentTag)
{
    List<Node> nodes = currentTag.childNodes();
    for(Node n : nodes)
    {
        if(n instanceof TextNode)
        {
            System.out.println(((TextNode)n).text());
        }
        else if(n instanceof Element)
        {
            printTextOfTag((Element)n);
        }
    }
}

输出量

This is the first text

 More text here Another line of text

Text in the span



Another text in span

 This is another line


 类似资料:
  • 我有一些url。我想从url指向的html中获取所有href,从所有获取的hrefs中获取所有href(递归)。关键是我想设置“递归”的深度。例如,如果深度=1,我只需要来自超文本标记语言的href。如果深度=2,我需要来自超文本标记语言的hrefs(假设为list1)和来自list1的每个href的hrefs,依此类推 以下是我使用jsoup得到的结果: 我应该如何修复递归条件以使其正确?

  • 问题内容: 我正在使用此代码检索本页主要文章中的文本。 问题是textview中没有显示任何内容。我要检索的文字都没有出现。Log.i与调试日志中的段一起显示。因此,我知道其连接成功。只是不知道为什么即时通讯没有在textview中获取任何文本。 问题答案: 以下是您问题的相关摘要: 您在这里犯了一个根本性的错误。文档中没有HTML标签。但是,有一个。根据有关Jsoup食谱一半的CSS选择器概述,

  • 问题内容: 当我使用jsoup提取数据时遇到一个职位。数据如下: 我想要这样的数据: 我怎样才能做到这一点?谁能帮我? 问题答案: 您可以将html解析为,选择-Element并获取其文本。 例: 输出:

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

  • 主要内容:Jsoup 获取文本 语法,Jsoup 获取文本 说明,Jsoup 获取文本 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后获取文本的方法的使用。 Jsoup 获取文本 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 link : 元素对象表示表示锚标记的 html 节点元素。 link.text() : text() 方法检索元素文本。 Jsoup 获

  • 我正在使用jsoup HTML解析器,并试图进入span类并从中获取文本,但它什么也不返回,并且其大小始终为零。我粘贴了HTML源代码的一小部分。请帮我提取文本。 我尝试了以下代码: 如果你对我的内容不是很清楚,请问我。提前谢谢。