我正在使用jsoup
来清理一些HTML。
我正在使用Whitelist.relaxed()
进行清理。这在大多数情况下效果很好,我想继续使用它。
问题是我有一个占位符href
值,干净正在删除。
例如,<a href="{placeholder}">text</a>
。这已更改为<a>text</a>
。有没有办法用我的href attribute
值保存place holder
?
提前致谢
答案 0 :(得分:1)
如果只有href属性,则可以使用“ preserveRelativeLinks(true)”。但是您已经有了target =“ _ blank”或其他属性,方法将所有这些属性都视为一个url。所以我更喜欢WhiteList的“ addAttributes(String tag,String ... attributes)” WhiteList addAttributes
这样的代码:
WhiteList whiteList = WhiteList.none();
whitelist.addAttributes("a","href","target");
whitelist.addAttributes("img","src");
String cleanText = Jsoup.clean(htmlText, whitelist);
答案 1 :(得分:0)
我猜你没有给clean
方法提供有效的基URI。如果你这样做,那么你可以保留href
。如果您还使用白名单指定preserveRelativeLinks(true)
,则链接也可以是相对的。
所以当清洁做这样的事情时:
String html = "<a href=\"{placeholder}\">text</a>";
String cleaned = Jsoup.clean(html,
"http://base.uri",
Whitelist.relaxed().preserveRelativeLinks(true));
System.out.println(cleaned);
这将产生以下输出:
<a href="{placeholder}">text</a>