EXSLT - 数学:随机不起作用

时间:2013-11-19 13:47:25

标签: xml xslt exslt

我想使用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的随机数? 谢谢你的帮助。

1 个答案:

答案 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运行你的样式表吗?你有没有运行任何样式表?