1

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

4

1 回答 1

0

根据EXSLT - math:random()文档,以下 XSLT 处理器支持该函数:4XSLT、libxslt、msxsl。您使用的是什么 XSLT 处理器?

根据这个页面,ExistDB 的默认值是 Xalan,它不是列出的处理器之一。(但是,根据Xalan 的文档,它确实提供了math:random()。)

如果您还没有配置不同的处理器,那将是一件好事。我个人的推荐是撒克逊。根据其文档,它支持 EXSLT math:random()

但是,在我看来,您的 XSLT 处理器可能根本没有被调用。你能告诉我们你是如何告诉 ExistDB 运行你的样式表的吗?你有没有让它运行任何样式表?

于 2013-11-19T15:00:20.653 回答