我有一个自定义的Java函数,它可以执行一些操作,我需要将它放到XSL中,这样它就可以在选定的节点上执行一些操作。我是这样使用的:
<msxsl:script implements-prefix="user" language="java">
<![CDATA[
public String doSomething(String input) {
// does something
return result;
}
]]></msxsl:script>声明命名空间:
... xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" xmlns:user="example.com">并呼叫:
<xsl:variable name="var">
<xsl:value-of select="user:doSomething(node)"/>
</xsl:variable>这会导致“无法编译样式表”错误。
我也尝试用Javascript替换java代码,错误是一样的。
您知道如何正确执行此操作,或者知道如何将Java代码插入到XSL中并调用它的其他方法吗?
发布于 2017-03-14 18:51:07
从XSLT调用到其他语言(如Java或Javascript )的机制取决于您使用的XSLT处理器,通常它们不能跨处理器移植。msxsl:script机制是专门针对Microsoft的MSXML的。
目前唯一常用的两个Java处理器是Xalan和Saxon,它们都有调用Java代码的机制。这些机制是相似的,但在许多细节上不同。但正如Martin Honnen指出的那样,与1.0相比,XSLT 2.0 (或3.0)不太需要扩展函数。
https://stackoverflow.com/questions/42780592
复制相似问题