3
假設,我有一個代碼段爲:問題,同時訪問哈希映射成XSL
Map mappingId = new HashMap();
mappingId.put("1", "1000");
transformer.setParameter("mappingId", mappingId);
transformer.transform(...);
,我有一個簡單的XSLT,試圖從這個
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:map="xalan://java.util.Map"
extension-element-prefixes="map">
<xsl:param name="mappingId" />
<xsl:template match="/">
<xsl:variable name="id" select="map:get($mappingId, '1')" />
<MappedId><xsl:value-of select="id"/></MappedId>
</xsl:template>
</xsl:stylesheet>
我獲得拿到鑰匙以下錯誤:
錯誤:'無法找到方法java.util.Map.get([ExpressionContext,] #STRING,#STRING) 致命錯誤:'無法編譯樣式表'。
有人可以幫我解決如何訪問java映射到XSL?
能否請你解釋一下?我不明白。我已將Map對象重命名爲elementIdMap.and並將其作爲參數傳遞。仍然得到相同的錯誤。 – 2012-04-12 12:07:58
XSLT參數可以是字符串,數字,布爾值或節點集 - 在我看來,在您的情況下,XSLT處理器將地圖轉換爲字符串 - 因此它正在尋找帶字符串參數的「get」函數。我不熟悉XSLT的Java擴展,但我認爲在將它傳遞給XSLT之前,必須將您的映射轉換爲節點集。 – MiMo 2012-05-15 12:51:53