当前位置: 首页 > 知识库问答 >
问题:

如何使用xslt生成随机UUID

袁恩
2023-03-14

我是xslt的新手。我想使用xslt生成32位长UUID并将其作为输入添加到xml中。我试图使用数学自由的随机函数,但得到错误。

输入XML

<users xmlns="ABC_Login">
   <email>ABC@gmail.com</email>
</users>

XSLT代码段

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns1="ABC_Login"  xmlns:math="http://exslt.org/math"
extension-element-prefixes="math" version="2.0">
    <xsl:template match="/ns1:users">
        <users>
            <email>
                <xsl:value-of select="ns1:email" />
            </email>
            <UUID>
                <xsl:value-of select="(floor(math:random()*10) mod 10) + 1" />
            </UUID>
        </users>
    </xsl:template>
</xsl:stylesheet>

我正在使用在线编辑器,但得到如下异常。http://xslttest.appspot.com/

错误:找不到名为的匹配0参数函数{http://exslt.org/math}随机()。没有具有本地名称random的Saxon扩展函数

实际上,我需要使用xslt生成随机标记,并将其添加到输入xml中。

预期产量

<users xmlns="ABC_Login">
       <email>ABC@gmail.com</email>
       <uuid>7B81A9B0D9-CA0E-E70F-ADFF-116EE7A1A980<</uuid>
    </users>

在这方面有人能帮我吗。顺致敬意,

共有1个答案

曾皓
2023-03-14

您收到错误的原因是您使用的XSLT 2.0处理器(Saxon 9)不支持EXSLT数学:随机())函数。

不幸的是,在XSLT 2.0中也没有原生随机()函数,但是使用Saxon,您可以调用Java方法-例如:

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:math="java.lang.Math"
exclude-result-prefixes="math">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>

<xsl:template match="/">
    <output>
        <xsl:variable name="random" select="math:random()"/>
        <xsl:value-of select="$random"/>
    </output>
</xsl:template>

</xsl:stylesheet>

生成随机数或:

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:uuid="java.util.UUID"
exclude-result-prefixes="uuid">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>

<xsl:template match="/">
    <output>
        <xsl:variable name="random" select="uuid:randomUUID()"/>
        <xsl:value-of select="$random"/>
    </output>
</xsl:template>

</xsl:stylesheet>

生成随机UUID

 类似资料:
  • 我试图在Java程序中实现一个随机数生成器。我在用数学。random(),但这似乎效果不太好。然后我尝试使用SecureRandom,但这对我的游戏来说太长了。然而,我遇到了这个生成器,MersenNetWisterng随机数生成器。这似乎是我想要的;速度很快,但仍然是随机的。 然而,我已经很长时间没有用Java编写了,只有2个月,我对API既不了解也不了解。如果有人能帮我解释一下如何在我的代码中

  • 问题内容: 如何使用Math.random生成随机整数? 我的代码是: 它显示的全部是0,我该如何解决? 问题答案: 将abc转换为整数。

  • 我对Java还是有点陌生,有一个实验室需要模拟一个彩票游戏,生成一个介于1到10之间的数字。它首先询问用户想要购买多少张彩票,然后询问他们是否希望计算机为他们生成猜测,如果是,则会生成猜测并显示中奖号码。如果用户说不,那么用户将自己输入猜测,并显示中奖号码。 我在弄清楚当有人输入是或否时如何执行代码时遇到了问题。我应该做一个do while循环吗? 这是我现在的代码。 以下是算法:1。获取购票数量

  • 问题内容: 我需要生成一个随机数。 看来该功能已不复存在。 我的选择是, 和 。 我在函数上找不到任何文档,头文件中也没有注释。 问题答案: ===== Swift 4.2 / Xcode 10 ===== 斯威夫特在引擎盖下用来完成工作。 ===== Swift 4.1 / Xcode 9 ===== 返回 0* 到 4294967295之间 的随机数 * 返回 0.0* 到 1.0 范围内的随

  • 本文向大家介绍如何生成一个随机数?相关面试题,主要包含被问及如何生成一个随机数?时的应答技巧和注意事项,需要的朋友参考一下  

  • 问题内容: 有没有一种方法可以在SQL Server中生成具有定义的字符数的 随机 base36标识符? 我已经搜索并找到了许多将base 36转换为int,反之亦然的示例,但不是随机生成唯一ID的示例。 问题答案: 该解决方案有点冗长,但可以正常使用,并且可以轻松地适应各种需求。这是一些示例输出: 请注意,您需要创建一个视图来包装UDF内不允许使用的RAND。因此,此解决方案需要两个数据库对象,