2
我想要將xsl + xml轉換爲xml(以便將其轉換爲使用FOP庫的pdf)。我使用的JDK是1.5,並且我無法使用另一個(這是我工作的公司正在使用的)。我讀到java 1.5的xalan jar是導致錯誤的原因之一。導致該錯誤的文字是:錯誤:'非靜態Java函數'evaluate'的第一個參數不是有效的對象引用。'當使用TrasformFactory
"dyn:evaluate($xpath)"/>
在:
<xsl:variable name="paramName" select="@name"/>
<xsl:variable name="xpath"
select="concat('/doc/data/',$paramName)" />
<fo:inline>
<xsl:value-of select="dyn:evaluate($xpath)"/>
</fo:inline>
</xsl:template>
是有辦法以防萬一它不改變罐子?有沒有辦法以不同的方式寫它?還是我使用錯誤的語法?
感謝您的幫助
對不起,復甦這個死的線程;我有同樣的問題。正確聲明名稱空間不能解決問題FWIW。 – 2015-03-25 17:58:16
@Laird Nelson - 我只是(重新)證實它適用於我。你是否得到一個錯誤,或只是沒有產生你期望的結果?仔細檢查你是否也有'extension-element-prefixes =「dyn」'並且你的XPath表達式是正確的。也許張貼一個小例子,並問作爲一個問題得到第二雙眼睛? – 2015-03-25 23:16:20
問題在於'javax.xml.transform.TransformerFactory'的默認實現產生了一個'Transformer',它在封面下使用了Xalan XSLTC_compiler_,而不是_interpreter_,在這種情況下不支持'dyn'。請參閱https://xalan.apache.org/xalan-j/extensions_xsltc.html#exslt_ext。 – 2015-03-26 22:06:11