我是xslt的新手。我想使用xslt生成32位长的UUID,并将它添加到作为输入的xml中。我试图使用数学自由的随机函数,但得到错误。如何使用xslt生成随机UUID
输入XML
<users xmlns="ABC_Login">
<email>[email protected]</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/
错误:无法找到名为{http://exslt.org/math} random()的匹配0参数函数。没有撒克逊扩展功能与本地名称随机
其实我需要使用xslt生成随机令牌并将其添加到输入xml中。
预期输出
<users xmlns="ABC_Login">
<email>[email protected]</email>
<uuid>7B81A9B0D9-CA0E-E70F-ADFF-116EE7A1A980<</uuid>
</users>
任何人可以帮助我在这方面。最好的问候,
并非所有XSLT 1.0处理器都实现所有EXSLT扩展功能。你将在实际生产中使用哪种处理器? –
你在纯xslt-1.0中的所有内容是 'generate-id()' – newtover
其实我在登录时需要输入xml的预期输出。有没有办法在xslt中做到这一点?谢谢。 – user3141034