我想使用EXSLT的函数math:random(),但是我无法使它工作。这是我的测试,文件xslt:
<xsl:stylesheet xmlns:math="http://exslt.org/math" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" extension-element-prefixes="math">
<xsl:import href="math.xsl"/>
<xsl:template match="/">
<xsl:value-of select="(floor(math:random()*10) mod 10) + 1"/>
</xsl:template>
</xsl:stylesheet>
这是简单的文件xml:
<?xml-stylesheet type="text/xsl" href="stile.xslt"?>
<radice>
ciao!
</radice>
这个例子不应该打印我“ciao!”和一个从1到10的随机数? 谢谢你的帮助。
答案 0 :(得分:0)
根据EXSLT - math:random()文档,以下XSLT处理器支持该功能:4XSLT,libxslt,msxsl。您使用的XSLT处理器是什么?
根据this page,ExistDB的默认值是Xalan,它不是列出的处理器之一。 (但是,根据Xalan's documentation,它确实提供了math:random()
。)
如果您还没有配置不同的处理器,那么尝试是件好事。我的个人推荐是撒克逊人。根据{{3}},它支持EXSLT math:random()
。
然而,听起来我可能根本没有调用你的XSLT处理器。你能告诉我们你如何告诉ExistDB运行你的样式表吗?你有没有运行任何样式表?