4

我正在尝试将 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>

有没有办法在不改变罐子的情况下绕过它?有没有办法以不同的方式编写它?还是我使用了错误的语法?

谢谢你的帮助

4

1 回答 1

2

evaluate()是一个 EXSLT 扩展函数。它是非标准的,但包括 xalan 在内的许多 XSLT 处理器都支持它。

您是否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>
于 2010-10-16T13:42:02.833 回答