java - Jsoup 清理我的 html

标签 java html jsoup

我正在尝试学习如何使用 Jsoup 清理 HTML 代码。

我想删除 <body>此示例中的标记,但 <p>标记必须保留:

public class prb {
    public static void main(String[] args) throws Exception {
        String i = "<p>Text 1234 <body>WOW</body> Text 1234</p><p>Text 1234</p>";

        System.out.println(getStringWithoutHtmlTags(i));
    }

    public static String getStringWithoutHtmlTags(String text) {
        Whitelist asd = new Whitelist();
        asd.addTags("<p>", "</p>");
        asd.removeTags("<body>, </body>");

        return Jsoup.clean(text, asd);
    }
}

但它会删除所有标签。输出是:

Text 1234 WOW Text 1234 Text 1234

我做错了什么?

提前谢谢你。

最佳答案

你写错了 tags ,因为 asd.addTags("<p>", "</p>");非常因为你有两次p<,>,/没用

正如文档所说:

asd.addTags("p");
asd.removeTags("body");

有关白名单标签/属性/协议(protocol)的更多详细信息:Jsoup whitelist

关于java - Jsoup 清理我的 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45304143/

相关文章:

javascript - 当动态创建表单时,如何从 Meteor Event 中的 HTML 表单获取值?

javascript - 根据用户的文本输入设置背景颜色

java - 如何解决JSOUP爬虫中目标标签删除问题

java - HTTP CURL 有效 - Java Jsoup 无效

java - 从jar中读取资源文件

java - 流式处理结果集错误

html - 导航栏上方的间隙?

java - 如何避免在 Jsoup 解析中包围 html head 标签

java - 创建自定义 log4j Appender 时出错

java - 如何在 Hive JDBC 中禁用详细日志记录