如何使用jsoup从此html标签中获取文本?

6

我在使用jsoup提取数据时遇到了一个问题。数据如下:

This is a <strong>strong</strong> number <date>2013</date>

我想要获取像这样的数据:这是一个数字 我该怎么做?有人能帮我吗?
3个回答

12
你可以将HTML解析为一个 Document,选择 body 元素并获取其文本。 示例:
Document doc = Jsoup.parse("This is a <strong>strong</strong> number <date>2013</date>");

String ownText = doc.body().ownText();
String text = doc.body().text();

System.out.println(ownText);
System.out.println(text);

输出:

This is a number  
This is a strong number 2013

有没有办法将“This is a”和“number”作为单独的文本获取(而不是组合在一起)? - MrSalesi
你可以通过迭代底层节点来分割它。 - ollo

3
这应该可以回答您的问题:
public String escapeHtml(String source) {
    Document doc = Jsoup.parseBodyFragment(source);
    Elements elements = doc.select("b");
    for (Element element : elements) {
        element.replaceWith(new TextNode(element.toString(),""));
    }
    return Jsoup.clean(doc.body().toString(), new Whitelist().addTags("a").addAttributes("a", "href", "name", "rel", "target"));
}

Jsoup - 如何通过转义而不是删除不需要的HTML来清除HTML?


这个问题涉及到使用Jsoup技术如何清理HTML代码。需要通过转义而不是删除不需要的HTML来实现清理。

0
Document doc = Jsoup.parse("This is a <strong>strong</strong> number <date>2013</date>");

Spanned HtmlDoc = Html.fromHtml(doc.toString());
String fromHTML = HtmlDoc.toString();

System.out.println(fromHTML);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接