Oracle Service Bus 12c项目使用XSL转换,其中包含一些exsl.org函数。因此命名空间包含在xsl文件中,如下所示:
的xmlns:exsl = “http://exslt.org/common”
然后,XSL正试图使用其中一个exsl函数:
xsl:value-of select =“count(exsl:node-set($ temp)/ g:W)”>
正如我们从Weblogic日志中看到的那样,它不起作用: XML-22015 :(错误)找不到函数“http://exslt.org/common:node-set”。
我们之前遇到过类似的问题,解决方法是更改命名空间。例如,我们只能通过声明以下命名空间来使用java格式方法(我省略了http,因为stackoverflow不喜欢它): www.oracle.com/XSL/Transform/java.text.Format 并且它不能像这样工作:www.oracle.com/XSL/Transform
所以我想知道节点集的正确命名空间是什么,或者如何在将来的情况下找到它。我们的系统没有互联网连接,所以我怀疑这些库存储在某个地方,这些命名空间无论如何都是一些映射的关键,指向一些离线位置(?)
答案 0 :(得分:0)
好的,所以解决方案是不要完全使用nodeset。节点集转换的树片段在XSLT 2.0中是隐式的,所以我只需要将版本更改为2.0,省略节点集函数。