6

当我使用 jsoup 提取数据时,我遇到了一个职位。像这样的数据:

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

我想得到这样的数据:This is a number

我怎样才能做到这一点?谁能帮我?

4

3 回答 3

11

您可以将 html 解析为 a Document,选择body-Element 并获取其文本。

例子:

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
于 2013-04-12T23:17:32.993 回答
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?

于 2013-04-12T23:17:32.680 回答
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);
于 2015-09-18T19:05:09.417 回答