如何在xslt文件中调用外部java函数?
我有这个xslt文件,我需要调用一个放在同一个应用程序中的其他地方的java函数。 在我有的xslt文件中
Summary:
但是当我尝试执行此xlst文件时,我收到以下错误
XSL transform reported error: XPath syntax error at char 21 on line -1 in {test_my:parse2($text)}: Cannot find a matching 1-argument function named {vobs.plugins.WikiParser.WikiParser}parse2()
好像它找不到java类,那么这样做的正确方法是什么? 一些代码示例会更好。 提前致谢!
这取决于您使用的XSLT转换处理器。 Saxon使用urn:java:
; Xalan使用xalan://
。
我有完全相同的问题,这解决了我在哪里urn:java:
和java:
都失败了。
假设您正在使用Xalan进行转换,您应该将xmlns:test_my="vobs.plugins.WikiParser.WikiParser"
更改为xmlns:test_my="xalan://vobs.plugins.WikiParser.WikiParser"
。
您需要将名称空间声明(在xsl:stylesheet元素中)从xmlns:test_my="vobs.plugins.WikiParser.WikiParser"
更改为xmlns:test_my="urn:java:vobs.plugins.WikiParser.WikiParser"
基本原理如下:为了使用包ab中的类C,您需要定义名称空间前缀并将其与urn:java:abC
相关联。
如果我正确理解XSL,则在导入不属于标准库的Java代码时需要使用urn:
前缀(如您的情况)。 如果您只需要导入标准库类,那么“java:”就可以了。
(进一步详情: http : //cafeconleche.org/books/xmljava/chapters/ch17s03.html )
[编辑:改变“java:” – >“urn:java:”]