Whitelist类

一、类结构

org.jsoup.safety.Whitelist

public class Whitelist

extends

Whitelist类定义了一些可以被保留的标签和属性,不属于这个范围的标签和属性的都要被删除。

默认的配置方法有:

none()

simpleText()

basic()

basicWithImages()

relaxed()

如果想扩大筛选范围,可以使用以下方法:

addTags(java.lang.String...)

addAttributes(java.lang.String,java.lang.String...)

addEnforcedAttribute(java.lang.String,java.lang.String, java.lang.String)

addProtocols(java.lang.String,java.lang.String, java.lang.String...)

二、方法

Constructor Summary

()创建一个空白的Whitelist

Method Summary

给标签添加属性。Tag是属性名,keys对应的是一个个属性值。例如:addAttributes("a", "href", "class")表示:给标签a添加href和class属性,即允许标签a包含href和class属性。如果想给每一个标签添加一组属性,使用:all。例如:addAttributes(":all", "class").即给每个标签添加class属性。

给标签添加强制性属性,如果标签已经存在了要添加的属性,则覆盖原有值。tag:标签;key:标签的键;value:标签的键对应的值。例如:addEnforcedAttribute("a", "rel", "nofollow")表示

(String tag, String key, String... protocols)给URL属性添加协议。例如:addProtocols("a", "href", "ftp", "http", "https")标签a的href键可以指向的协议有ftp、http、https

addTags(String... tags)向Whitelist添加标签

()允许的标签包括:a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul,以及合适的属性。标签a指向的连接可以是http, https, ftp, mailto,转换完后会强制添加rel=nofollow这个属性。不允许包含图片。

在basic的基础上增加了图片的标签:img以及使用src指向http或https类型的图片链接。

protected  boolean

判断参数tag是否符合当前的Whitelist

()只保留文本,其他所有的html内容均被删除

(boolean preserve)false(默认):不保留相对地址的url;true:保留相对地址的url

()允许的标签:a, b, blockquote, br, caption, cite, code, col, colgroup, dd, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, u, ul。结果不包含标签rel=nofollow,如果需要可以手动添加。

()只允许:b, em, i, strong, u.

三、总结

Whitelist的基本方法有四种:

none:只保留了文本;

simpleText:简单的文本属性b, em, i, strong, u。

basic:a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q,small,strike, strong, sub, sup, u, ul。

basicWithImages:a, b, blockquote, br, cite, code, dd, dl,dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul、img、src。

Relaxed:a, b, blockquote,br, caption, cite, code, col, colgroup, dd, dl, dt, em, h1, h2, h3, h4, h5, h6,i, img, li, ol, p, pre, q, small, strike, strong, sub, sup, table, tbody, td,tfoot, th, thead, tr, u, ul。

四、实例

publicstaticvoidJsoupClean(){

html = "搜索设置";

String doc = Jsoup.clean(html, baseUri, Whitelist.none());

System.out.println(doc);

System.out.println("*******");

doc = Jsoup.clean(html, baseUri, Whitelist.simpleText());

System.out.println(doc);

System.out.println("*******");

doc = Jsoup.clean(html, baseUri, Whitelist.basic());

System.out.println(doc);

System.out.println("*******");

doc = Jsoup.clean(html, baseUri, Whitelist.basicWithImages());

System.out.println(doc);

System.out.println("*******");

doc = Jsoup.clean(html, baseUri, Whitelist.relaxed());

System.out.println(doc);

}

本文为Eliot原创,转载请注明出处:

http://blog.csdn.net/xyw_eliot/article/details/9145523

whitelist方法_Jsoup学习之Whitelist类相关推荐

  1. python创建person类用printinfo方法_Python学习期刊Day11类和对象(2),日记,与,下

    今天是2020年2月20日,晴,6~14℃ 一.继承 继承是一种创建新类的方式.新建类将获得原有类的所有属性和方法.原有的类称为父类(超类),新建的类称为子类. Python中继承的方式如下: ''' ...

  2. JAVAAPI学习之Calendar类;Calendar类set()、add()、roll()方法区别

    JAVAAPI学习之Calendar类 http://blog.csdn.net/myjlvzlp/article/details/8065775(写的很好,清晰易懂) Calendar类set(). ...

  3. IOS UI Automation 学习之常用类,方法和模拟手势

    为什么80%的码农都做不了架构师?>>>    IOS UI Automation 学习之常用类,方法和模拟手势 常用类结构图 作者不擅长作画,如果有好的画此类图形的工具,可以留言, ...

  4. python面向对象编程中方法和属性_Python面向对象编程中关于类和方法的学习笔记...

    Python面向对象编程中关于类和方法的学习笔记 类与类方法是面向对象的编程语言中必不可少的特性,本文总结了Python面向对象编程中关于类和方法的学习笔记,需要的朋友可以参考下 类和实例 pytho ...

  5. python描述符魔术方法_学习笔记-Python基础9-面向对象编程OOP-类的成员描述符(property)、类的常用内置属性、类的常用魔术方法、类和对象的三种方法...

    一.类的成员描述符(property) 类的成员描述符是为了在类中,对类的成员属性进行相关操作而创建的一种方式,大部分属于数据清洗 属性有三种操作:get获取属性值.set修改或添加属性.delete ...

  6. Java—String类的intern方法的学习

    对intern方法的学习来源于之前偶然看到的一篇博客:[请别再拿"String s = new String("xyz");创建了多少个String实例"来面试 ...

  7. 学习C++ 丨 类(Classes)的定义与实现!C/C++必学知识点!

    一."类" 的介绍 在C++中, 用 "类" 来描述 "对象", 所谓的"对象"是指现实世界中的一切事物.那么类就可以看 ...

  8. 学习Kotlin(三)类和接口

    推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...

  9. mysql存储过程大于小于_mysql5.0存储过程操作符知识_函数方法[Mysql学习]

    mysql存储过程基本函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2  [,... ]) //连接字串 INSTR (string ,substrin ...

最新文章

  1. python打包成exe可执行文件指定进程名字
  2. 《零基础免费学扩增子分析》视频课(含ppt及相应代码),无需转发,直接获取...
  3. 隐私泄露无孔不入?扫地机器人已成新型“窃听器”,小米Roborock“躺枪”
  4. java11 新特性 详解
  5. PHP实现内部函数explode
  6. 方式程0day MS17-010远程溢出漏洞测试
  7. LeetCode 90. 子集 II(回溯+剪枝)
  8. 美河LINUX 内核学习视频
  9. BT种子文件(.torrent)的具体文件结构
  10. intellij idea 2017破解
  11. 原型图工具功能比拼1
  12. OWC资料收集-绑定到数据源 Office XP 图表组件
  13. 【数理逻辑三】命题逻辑及形式系统【上】
  14. 京东后台->京东商智uuid算法
  15. centos启动卡死进不去界面,停留在started GNOME display manager
  16. 德尔福ESR雷达测试
  17. 2000-2019年世界人口数据集内附下载地址和链接
  18. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个电风扇动画效果~适合初学者~超简单~ |前端开发|IT软件
  19. 最差的算法工程师能差到什么程度呢?
  20. 微信小程序跳转公众号(引导关注)之 使用公众号消息

热门文章

  1. 接口测试第二课(Fiddler实现APP抓包)
  2. SignalR 聊天室实例详解(服务器端推送版)
  3. GateWay程序分析04_Delay.h
  4. Windows11升级绕过不支持该处理器
  5. Gstreamer之重置PTS与DTS流程(二十)
  6. 证明: 1/x = a^(-1)
  7. WSL2扩展虚拟硬件磁盘( VHD大于256GB报错问题)
  8. got、plt表介绍
  9. Ubuntu 安装adb/fastboot工具
  10. Mac上搭建Go语言环境及第一个hello.go程序