Xml 如何使用xslt生成随机UUID
我是xslt的新手。我想使用xslt生成32位长的UUID,并将其作为输入添加到xml中。我试着使用数学图书馆的随机函数,但得到了错误 输入XML XSLT代码段 我正在使用在线编辑器,但得到如下异常 错误:找不到名为{}random的匹配0参数函数。没有具有本地名称random的Saxon扩展函数 实际上,我需要使用xslt生成随机令牌,并将其添加到输入xml中 预期产量Xml 如何使用xslt生成随机UUID,xml,xslt,xslt-2.0,Xml,Xslt,Xslt 2.0,我是xslt的新手。我想使用xslt生成32位长的UUID,并将其作为输入添加到xml中。我试着使用数学图书馆的随机函数,但得到了错误 输入XML XSLT代码段 我正在使用在线编辑器,但得到如下异常 错误:找不到名为{}random的匹配0参数函数。没有具有本地名称random的Saxon扩展函数 实际上,我需要使用xslt生成随机令牌,并将其添加到输入xml中 预期产量 在这方面有人能帮我吗。非常感谢,出现错误的原因是您使用的XSLT 2.0处理器Saxon 9不支持EXSLT math:r
在这方面有人能帮我吗。非常感谢,出现错误的原因是您使用的XSLT 2.0处理器Saxon 9不支持EXSLT math:random函数 不幸的是,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>
要生成,并非所有XSLT 1.0处理器都实现所有EXSLT扩展函数。在实际生产中,您将使用哪个处理器?纯xslt-1.0中的所有功能都是生成ID。实际上,我希望在登录时从输入xml获得预期的输出。在xslt中有什么方法可以做到这一点吗?谢谢。你为什么不回答这个问题呢?对不起,我犯了一个错误,我将在实际生产中使用XSLT 2.0和saxon处理器。不幸的是,saxon-HE不可能做到这一点。但是你可以自己在XSLT 2中实现UUID:请参阅我对上述问题的评论中的链接。
<users xmlns="ABC_Login">
<email>ABC@gmail.com</email>
<uuid>7B81A9B0D9-CA0E-E70F-ADFF-116EE7A1A980<</uuid>
</users>
<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>