错误:';非静态Java函数的第一个参数';评估';不是有效的对象引用;使用TrasformFactory时
我正在尝试将xsl+xml转换为xml(稍后使用FOP库将其转换为pdf)。我使用的JDK是1.5,我无法使用其他JDK(这就是我工作的公司正在使用的JDK)。我读到Java1.5的XalanJAR是导致错误的原因之一。导致错误的文本是:错误:';非静态Java函数的第一个参数';评估';不是有效的对象引用;使用TrasformFactory时,java,xsl-fo,xpath,xalan,Java,Xsl Fo,Xpath,Xalan,我正在尝试将xsl+xml转换为xml(稍后使用FOP库将其转换为pdf)。我使用的JDK是1.5,我无法使用其他JDK(这就是我工作的公司正在使用的JDK)。我读到Java1.5的XalanJAR是导致错误的原因之一。导致错误的文本是: "dyn:evaluate($xpath)"/> 在: 有没有办法绕过它而不改变罐子?有没有不同的写作方法?还是我使用了错误的语法 感谢您的帮助是EXSLT扩展功能。它是非标准的,但许多XSLT处理器都支持它 您是否在样式表中声明了dyn名称空间前
"dyn:evaluate($xpath)"/>
在:
有没有办法绕过它而不改变罐子?有没有不同的写作方法?还是我使用了错误的语法
感谢您的帮助是EXSLT扩展功能。它是非标准的,但许多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>
...
很抱歉让这个死线程死机;我也有同样的问题。正确声明名称空间并不能解决FWIW问题。@Laird Nelson-我只是(重新)验证了它对我有效。您是否遇到了错误,或者只是没有产生预期的结果?仔细检查您是否还有扩展元素前缀=“dyn”
,以及XPath表达式是否正确。也许可以发布一个小示例并作为问题提问以获得第二双眼睛?问题是javax.xml.transform.TransformerFactory
的默认实现产生了一个Transformer
,它在封面下使用Xalan XSLTC编译器,而不是解释器,在这种情况下不支持dyn
。看见
<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>