Jsoup正在使用占位符值

时间:2016-03-02 01:15:58

标签: jsoup

我正在使用jsoup来清理一些HTML。  我正在使用Whitelist.relaxed()进行清理。这在大多数情况下效果很好,我想继续使用它。

问题是我有一个占位符href值,干净正在删除。

例如,<a href="{placeholder}">text</a>。这已更改为<a>text</a>。有没有办法用我的href attribute值保存place holder

提前致谢

2 个答案:

答案 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>