我正在尝试将xsl + xml转换为xml(稍后使用FOP库将其转换为pdf)。我使用的JDK是1.5,我无法使用另一个(这就是我工作的公司正在使用的)。我读到java 1.5的xalan jar是导致错误的人。导致错误的文本是:
"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>
有没有改变罐子的方式?有没有办法以不同的方式写它?或者我使用了错误的语法?
感谢您的帮助
答案 0 :(得分:1)
evaluate()
是一个EXSLT扩展函数。它是非标准的,但许多XSLT处理器including xalan都支持它。
您是否在样式表中声明了dyn
名称空间前缀,以便正确引用EXSLT动态名称空间?
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dyn="http://exslt.org/dynamic"
extension-element-prefixes="dyn">
...
</xsl:stylesheet>