【发布时间】:2015-09-08 13:56:57
【问题描述】:
我想将一些随机数连接到日期中。 一般是这样的:
http://xsltransform.net/bdxtrc/1
结果应该是例如 2015-09-08T13:53:41.514Z54321 其中 54321 是一个随机数。
我尝试使用 EXSLT - RANDOM:RANDOM-SEQUENCE 函数,但它无法正常工作。我不知道为什么。有人可以帮我吗? 谢谢, 问候
【问题讨论】:
-
你好 ;)。您没有调用该函数,但您正在使用名称测试。但是我改成
random:random-sequence(10, 12.0)[1]之后还是报错,说函数不存在。你看过这个吗? stackoverflow.com/questions/2359134/random-items-in-xslt -
天啊,生成简单的随机数真的那么难吗:D不好
-
随机数从来都不是简单的,它实际上在任何语言中都很难,但在函数式语言中尤其困难(请参阅为什么会这样:programmers.stackexchange.com/questions/202908/…) .在 XPath 3.1 中,修正了一个标准函数的遗漏。但是上面的代码有什么难的?该函数返回一组数字。你需要说你需要哪一个。任何随机数生成器都需要一个种子(第二个参数)和一个数量(第一个参数)。与那里的其他语言没有什么不同。
-
XSLT 和 XPath,还有 F#、Haskell、Erlang,都是纯函数式语言。这意味着:对同一函数的两次相同函数调用将导致相同的结果。因此,随机数的问题。您需要一种方法来更改参数(在下面的示例中,我通过使用当前位置来做到这一点)。对于任何函数式语言都是如此,这也是它们如此稳定且从未(几乎从未)拥有
NullPointerExceptions的核心原因,并且您编写的代码“正常工作”并且可以轻松实现多线程。但是,当然,任何语言都有一个学习曲线;)。 -
@maciek2791 "生成简单的随机数真的有那么难" 这比让你回答这个问题更容易:你使用的是哪个 XSLT 处理器?