Hej, er ikke lige så hyppig en bruger af eksperten, men tror denne tråd vil være den rigtige at spørge i...
Jeg har et jscript det bliver kørt i et xslt stylesheet. Det fungerer fint til at outputte 3 random numre, men jeg kan ikke greje hvordan jeg undgår at 2 eller flere numre er ens...?
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform" xmlns:msxml="urn:schemas-microsoft-com:xslt" xmlns:random="
http://www.microsoft.com/msxsl" exclude-result-prefixes="msxml random">
<xsl:output method="text"/>
<xsl:variable name="antal"><xsl:value-of select="count(/Template/loop[@name='Groups']/item)"/></xsl:variable>
<msxml:script implements-prefix="random">function range(min, max)
{
var dist = max - min + 1;
return Math.floor(Math.random() * dist + min);
}</msxml:script>
<xsl:template match="/">
<xsl:call-template name="GenerateRandomNumbers">
<xsl:with-param name="count">
3
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="GenerateRandomNumbers">
<xsl:param name="count"/>
<xsl:param name="curIndex">0</xsl:param>
<xsl:value-of select="random:range(1, $antal)"/>
<xsl:if test="number($count) != (number($curIndex) + 1)">
<xsl:call-template name="GenerateRandomNumbers">
<xsl:with-param name="count">
<xsl:value-of select="$count"/>
</xsl:with-param>
<xsl:with-param name="curIndex">
<xsl:value-of select="string(number($curIndex) + 1)"/>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>