http://my.oschina.net/itsoku/blog/166890
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...)
二、方法
Constructor Summary |
|
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) |
Whitelist |
addProtocols(String tag, String key, String... protocols) |
Whitelist |
addTags(String... tags) |
static Whitelist |
basic() |
static Whitelist |
basicWithImages() 在basic的基础上增加了图片的标签:img以及使用src指向http或https类型的图片链接。 |
protected boolean |
isSafeTag(String tag) |
static Whitelist |
none() |
Whitelist |
preserveRelativeLinks(boolean preserve) |
static Whitelist |
relaxed() |
static Whitelist |
simpleText() |
三、总结
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。但是这个添加要谨慎。
四、实例