我试过了:
mark {
font-weight: bold;
background: #EFEFEF;
}
它们都不起作用:当我尝试清除相对网址时,例如Whitelist.relaxed();
Whitelist.relaxed().preserveRelativeLinks(true);
Whitelist.relaxed().addProtocols("a","href","#","/","http","https","mailto","ftp");
Whitelist.relaxed().addProtocols("a","href","#","/","http","https","mailto","ftp").preserveRelativeLinks(true);
我删除了<a href="/test.xhtml">test</a>
属性(href
)。
我正在使用JSoup 1.8.2。
有什么想法吗?
答案 0 :(得分:4)
问题很可能源于干净方法的召唤。如果您提供基本URI,则所有内容应按预期工作:
String html = ""
+ "<a href=\"/test.xhtml\">test</a>"
+ "<invalid>stuff</invalid>"
+ "<h2>header1</h2>";
String cleaned = Jsoup.clean(html, "http://base.uri", Whitelist.relaxed().preserveRelativeLinks(true));
System.out.println(cleaned);
以上工作并保留相关链接。但是String cleaned = Jsoup.clean(html, Whitelist.relaxed().preserveRelativeLinks(true))
会删除该链接。
请注意documentation of Whitelist.preserveRelativeLinks(true):
请注意,处理相对链接时,输入文档必须具有 解析时设置适当的基本URI,以便链接的协议 可以确认。无论保存亲属的设置如何 链接选项,链接必须可以解析基础URI到 允许的协议;否则该属性将被删除。