【发布时间】:2013-11-19 13:47:24
【问题描述】:
我想使用 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>
这个例子不应该打印 me "ciao!"和一个从 1 到 10 的随机数? 非常感谢您的帮助。
【问题讨论】:
-
那么它会生成什么作为输出?
-
那么还有其他问题。由于您正在匹配 yuor 文档的根,而不是生成除数学函数之外的 任何 输出,如果“ciao!”出现了,似乎根本没有进行任何转换。
-
也许我以不正确的方式安装了库 EXSLT,或者库 EXSLT 与我的数据库“ExistDB”不兼容?
-
我发现如果我删除
<xsl:import href="math.xsl"/>,它会打印正确的xml文件结构(但不要总是打印随机数)。 -
您是否有权访问 XSLT 处理器的任何错误输出?它是否有可能告诉您它找不到 math.xsl,或者无法识别函数
math:random()?或者 math.xsl 与您运行的 XSLT 版本不兼容?