我有我的自定義Java函數執行某些操作,我需要將它放到XSL中,以便它可以在選定節點上執行某些操作。我用的是這樣的:與Java或JS一起使用<msxsl:script>元素
<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中並調用它?
'urn:schemas-microsoft-com:xslt'以及'msxsl'中的'ms'前綴意味着這是對它們* XSLT處理器的非標準** Microsoft擴展**。非標準意味着您不能將其與其他XSLT處理器(如Java附帶的處理器)一起使用。 – Andreas
@Andreas,感謝您的評論!也許你知道Java的替代品? – alalambda
Xalan確實有類似的功能:https://xml.apache.org/xalan-j/extensions.html – Andreas