我努力了:
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
属性已删除(<a>test</a>
).
我正在使用 JSoup 1.8.2。
有任何想法吗?
问题很可能源于 clean 方法的调用。如果您提供基本 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))
但该链接已被删除。
请注意Whitelist.preserveRelativeLinks(true) 的文档 http://jsoup.org/apidocs/org/jsoup/safety/Whitelist.html#preserveRelativeLinks-boolean-:
请注意,在处理相对链接时,输入文档必须具有
解析时设置适当的基本 URI,以便链接的协议
可以确认。无论保留相对的设置如何
links 选项,该链接必须可根据基本 URI 解析为
允许的协议;否则该属性将被删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)