[英]JSoup parse trashing Freemarker tags
我正在使用JSoup更新其中包含一些Freemarker標記的某些服務器端HTML模板。 JSoup無法將Freemarker標記識別為有效的HTML(足夠公平),並將其轉換為>
和<
例如:
<div class="row">
<#list things as thing>
</#list>
</div>
轉換為:
<div class="row">
<#list things as thing>
</#list>
</div>
當我調用Document doc = Jsoup.parse( theHtml );
我知道JSoup有一個白名單,大概可以在其中添加<#list>
和其他Freemarker標記,但是我看不到將更新的白名單傳遞給parse()
方法的方法嗎?
不,不幸的是,白名單功能僅適用於clean()方法,不適用於解析器。 因此,您無法輕松添加標簽。
即使您使用xmlParser,它也將不起作用,因為您的標簽名稱以#
開頭。
我看到的唯一解決方案是在解析之前轉換模板。 例如帶有正則表達式。
有一種解決方法可能對您有用:FreeMarker提供了另一種語法,您可以在其中使用[
和]
代替<
和>
,例如[#list things as thing]
。 可以使用tagSyntax
設置在FreeMarker配置中啟用它。 (或者,如果您以[#ftl]
開頭的模板,則它將強制切換為其他語法。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.