gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:48:52 27 4
gpt4 key购买 nike

我在使用 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,] ).

我在执行编译命令的文件夹中有一个名为 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)"/>

所以我想我的问题来 self 的命名空间,但是它出了什么问题?

此外,它是一个 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">

关于java - 如何使用 Xalan 处理器调用外部 java 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18323099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com