文档章节

Jsoup清除HTML标签(非白名单)

lifes77
 lifes77
发布于 2018/10/25 17:25
字数 419
阅读 35
收藏 0

Jsoup默认提供五种白名单:

  1): none()
    该API会清除所有HTML标签,仅保留文本节点。

  2): simpleText()
    该API仅会保留b, em, i, strong, u 标签,除此之外的所有HTML标签都会被清除。

  3): basic()
    该API会保留 a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul 和其适当的属性标签,除此之外的所有HTML标签都会被清除,且该API不允许出现图片(img tag)。另外该API中允许出现的超链接中可以允许其指定http, https, ftp, mailto 且在超链接中强制追加rel=nofollow属性。

  4): basicWithImages()
    该API在保留basic()中允许出现的标签的同时也允许出现图片(img tag)和img的相关适当属性,且其src允许其指定 http 或 https。

  5): relaxed()
    该API仅会保留 a, b, blockquote, br, caption, cite, code, col, colgroup, dd, div, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, span, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, u, ul 标签,除此之外的所有HTML标签都会被清除,且在超链接中不会强制追加rel=nofollow属性。
--------------------- 
用法:

1:使用自带的方法保留白名单里面html标签:

String retainHtml = Jsoup.clean(html, Whitelist.relaxed());

2:保留自定义的标签:

String retainHtml = Jsoup.clean(html, new Whitelist().addTags(new String[]{ "p","br","img","strong"}));

© 著作权归作者所有

共有 人打赏支持
lifes77

lifes77

粉丝 34
博文 62
码字总数 22953
作品 0
黄冈
程序员
私信 提问
加载中

评论(2)

lifes77
lifes77
客户端评论测试😠😞😞👧👨👯😩🤗
开源中国首席嘤嘤怪
开源中国首席嘤嘤怪
赞👍😁😒😞👿😩👧👧
Jsoup实战_2_WhiteList清理文档

在做网站的时候,经常会提供用户评论的功能。有些不怀好意的用户,会搞一些脚本到评论内容中,而这些脚本可能会破坏整个页面的行为,更严重的是获取一些机要信息,此时需要清理该HTML,以避免...

lkee6760
2018/05/21
0
0
用Jsoup对用户输入内容的HTML安全过滤

在网站使用input或textarea提供给用户可输入内容的功能,比如发帖子,发文章,发评论等等。这时候需要后端程序对输入内容作安全过滤,比如<script>等可造成安全隐患的标签。 java中有个开源包...

凯文加内特
2015/02/28
0
2
jsoup 1.8.1 发布,极大的性能提升!

jsoup 1.8.1 发布啦! jsoup 1.8.1 显著提升了文本和树序列化的性能;可以选择 HTML 或者 XML 输出;还有大量的功能改进和 bug 修复。此版本现已提供下载。 更新内容如下: 改进 可以选择 HT...

oschina
2014/09/28
9.3K
38
XXL-CRAWLER v1.1.0,面向对象的分布式爬虫框架

XXL-CRAWLER v1.1.0 已发布,更新如下: 新特性: 页面默认cssQuery调整为html标签; 升级Jsoup至1.11.1版本; 修复PageVO注解失效的问题; 属性注解参数attributeKey调整为selectVal; 代理...

许雪里
2017/11/08
912
17
百度编辑器UEditor源码模式下过滤div/style等html标签

UEditor在html代码模式下,当输入带有<div style="">、<iframe>这类带有html标签的内容时,切换为编辑器模式后,会发现输入的内容被删除,自动过滤掉了。提供两种解决方案: 1、“白名单法“...

makingdifference
2016/11/15
2.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-13(Mybatis基本概念和简单的例子)

在mybatis初次学习Mybatis的时候,遇到了很多问题,虽然阿里云的视频有教学,但是视频教学所使用的软件和我自己使用的软件不用,我自己用的数据库是oracle数据库,开发环境是idea。而且视频中...

白话
39分钟前
2
0
Java基础:String、StringBuffer和StringBuilder的区别

1 String String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。 String类的包含如下定义: /** The value is used for character storage. */private final cha...

watermelon11
今天
2
0
mogodb服务

部署MongoDB 官网: https://www.mongodb.com/download-center/community 创建mongo数据目录 mkdir /data/mongodb 二进制部署 wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x8......

以谁为师
昨天
5
0
大神教你Debian GNU/Linux 9.7 “Stretch” Live和安装镜像开放下载

Debian项目团队于昨天发布了Debian GNU/Linux 9 "Stretch" 的第7个维护版本更新,重点修复了APT软件管理器中存在的安全漏洞。在敦促每位用户尽快升级系统的同时,Debian团队还发布了Debian ...

linux-tao
昨天
4
0
PHP 相关配置

1. php-fpm的pool 编辑php-fpm配置文件php-fpm.con vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加以下内容 include = etc/php-fpm.d/*.conf # 相当与Nginx的虚拟主机文件 “vho......

Yue_Chen
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部