Ok, I've implemented EXSLT Random module, which consists of the only function random:random-sequence() for EXSLT.NET library. Here is how it looks now:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:random="http://exslt.org/random" exclude-result-prefixes="random"> <xsl:template match="/"> 10 random numbers: <xsl:for-each select="random:random-sequence(10)"> <xsl:value-of select="format-number(., '##0.000')"/> <xsl:if test="position() != last()">, </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>The result is
10 random numbers: 0.311, 0.398, 0.698, 0.929, 0.418, 0.523, 0.667, 0.215, 0.915, 0.007The function accepts optional number of random numbers (1 by default) to generate and optional seed (DateTime.Now.Ticks by default) and returns nodeset of <random> elements, each one containing generated random number.
EXSLT.NET team members are encouraged to review my implementation in the projects's source repository and if nobody objects we can release EXSLT.NET 1.1 version.
Leave a comment