Jsoup学习之Whitelist类
2015-10-10 09:02
573 查看
Whitelist类
一、类结构
java.lang.Object
org.jsoup.safety.Whitelist
public class Whitelist
extends
Object
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...)
二、方法
三、总结
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。
四种所包含的属性越来越多,如果还不满足,可以使用addAttributes、addEnforcedAttribute、addProtocols、addTags。但是这个添加要谨慎。
四、实例
[java] view
plaincopyprint?
public static void JsoupClean(){
html = "<ahref=\"http://www.baidu.com/gaoji/preferences.html\"name=\"tj_setting\">搜索设置</a>";
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
一、类结构
java.lang.Object
org.jsoup.safety.Whitelist
public class Whitelist
extends
Object
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() 创建一个空白的Whitelist |
Method Summary | |
Whitelist | addAttributes(String tag, String... keys) 给标签添加属性。Tag是属性名,keys对应的是一个个属性值。例如: addAttributes("a", "href", "class")表示:给标签a添加href和class属性,即允许标签a包含href和class属性。如果想给每一个标签添加一组属性,使用:all。例如: addAttributes(":all", "class").即给每个标签添加class属性。 |
Whitelist | addEnforcedAttribute(String tag, String key, String value) 给标签添加强制性属性,如果标签已经存在了要添加的属性,则覆盖原有值。tag:标签;key:标签的键;value:标签的键对应的值。例如: addEnforcedAttribute("a", "rel", "nofollow")表示 <a href="..." rel="nofollow"> |
Whitelist | addProtocols(String tag, String key, String... protocols) 给URL属性添加协议。例如: addProtocols("a", "href", "ftp", "http", "https") 标签 a 的 href 键可以指向的协议有 ftp 、 http 、 https |
Whitelist | addTags(String... tags) 向Whitelist添加标签 |
static Whitelist | basic() 允许的标签包括: 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 这个属性。不允许包含图片。 |
static Whitelist | basicWithImages() 在basic的基础上增加了图片的标签:img以及使用src指向http或https类型的图片链接。 |
protected boolean | isSafeTag(String tag) 判断参数tag是否符合当前的Whitelist |
static Whitelist | none() 只保留文本,其他所有的html内容均被删除 |
Whitelist | preserveRelativeLinks(boolean preserve) false(默认):不保留相对地址的url;true:保留相对地址的url |
static Whitelist | 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。结果不包含标签rel=nofollow ,如果需要可以手动添加。 |
static Whitelist | simpleText() 只允许: 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。
四种所包含的属性越来越多,如果还不满足,可以使用addAttributes、addEnforcedAttribute、addProtocols、addTags。但是这个添加要谨慎。
四、实例
[java] view
plaincopyprint?
public static void JsoupClean(){
html = "<ahref=\"http://www.baidu.com/gaoji/preferences.html\"name=\"tj_setting\">搜索设置</a>";
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
相关文章推荐
- Jsoup学习之Document类
- JS动态改变select选择变更option的index值
- JS数组定义
- C#操作 JSON方法汇总
- js观察者模式
- 公历和农历转换的JS代码
- 使用 jsoup 对 HTML 文档进行解析和操作
- C# 技巧(3) C# 操作 JSON
- 使用json-lib封装json
- JavaScript实现Ajax小结
- JSP九大内置对象
- js中(function(){…})()立即执行函数写法理解(转载oschina)
- js模块化历程
- js继承原理
- JSP中使用JSTL按不同条件输出内容的方法
- JSP实现用于自动生成表单标签html代码的自定义表单标签
- jsp实现Servlet文件下载的方法
- 页面内容排序插件jSort使用方法
- clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
- JS实现的车标图片提示效果代码