如何使用xslt生成随机UUID

 rukal2502900501_324 发布于 2022-12-04 00:20

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

输入XML


   ABC@gmail.com

XSLT代码段



    
        
            
                
            
            
                
            
        
    

我正在使用在线编辑器,但获得如下例外.http://xslttest.appspot.com/

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

实际上我需要使用xslt生成随机令牌并将其添加到输入xml中.

预期产出


       ABC@gmail.com
       7B81A9B0D9-CA0E-E70F-ADFF-116EE7A1A980<
    

在这方面有人可以帮助我.最好的祝福,

1 个回答
  • 您收到错误的原因是您使用的XSLT 2.0处理器(Saxon 9)不支持EXSLT math:random())函数.

    不幸的是,XSLT 2.0中也没有本机random()函数,但是使用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

    2022-12-11 01:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有