Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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
如何使用Xalan处理器调用外部java函数_Java_Xslt_Namespaces_Xalan - Fatal编程技术网

如何使用Xalan处理器调用外部java函数

如何使用Xalan处理器调用外部java函数,java,xslt,namespaces,xalan,Java,Xslt,Namespaces,Xalan,我在使用Xalan处理器调用XSL代码中的外部java函数时遇到问题 我得到的错误是: Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodException: For extension function, could not find method org.apache.xml.utils.NodeVector.incrementPropertyId([ExpressionContext,]

我在使用Xalan处理器调用XSL代码中的外部java函数时遇到问题

我得到的错误是:

Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodException: For extension function, could not find method org.apache.xml.utils.NodeVector.incrementPropertyId([ExpressionContext,] ).
我在执行compile命令的文件夹中有一个名为Util.java的java类

在我的xsl文件中,我声明了我的命名空间,如下所示:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                          xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java"
                          xmlns:util="xalan://Util">

我使用以下方法调用我的函数:

<xsl:copy-of select="util:incrementPropertyId(blablabal)"/>

所以我想我的问题来自我的名称空间,但它有什么问题

此外,它是xsl 1.0样式表

谢谢你的帮助

编辑:


在我的Util.java文件中,我没有声明包,因为我在根目录下。。。我是否应该添加一个包Util;我的类的定义?

可能您的问题是在调用方法时没有提到名称空间 尝试:


在扩展元素前缀中定义名称空间util,并将包和类的名称分配给该名称空间:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java"
                      extension-element-prefix="util"
                      xmlns:util="your.package.YourClass">


对不起,我犯了一个错误,我在提问时提到了一个名称空间,但却忘了键入。最新的Xalan(2.7)也有同样的问题。。。这件事不知怎么解决了吗?@lazertyuiopl-Nope发现这在Xalan身上是不可能的。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java"
                      extension-element-prefix="util"
                      xmlns:util="your.package.YourClass">