Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:';非静态Java函数的第一个参数';评估';不是有效的对象引用;使用TrasformFactory时_Java_Xsl Fo_Xpath_Xalan - Fatal编程技术网

错误:';非静态Java函数的第一个参数';评估';不是有效的对象引用;使用TrasformFactory时

错误:';非静态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名称空间前

我正在尝试将xsl+xml转换为xml(稍后使用FOP库将其转换为pdf)。我使用的JDK是1.5,我无法使用其他JDK(这就是我工作的公司正在使用的JDK)。我读到Java1.5的XalanJAR是导致错误的原因之一。导致错误的文本是:

"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>