[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] how to output elements in random order?
Subject: Re: [xsl] how to output elements in random order? From: Oliver Becker <obecker@xxxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 1 Feb 2002 09:44:18 +0100 (MET) |
Hi Massimo, > Is there a standard (clean) way to process (output) elements in random > order, possibliy specifiyng a "seed" as a parameter to the stylesheet? > > It's not just a speculation. One motivation, for example, is that I'm > tryng to use XSLT to produce randomly premuted multiple choice tests for > grading students. Given a set of questions each one with a various number > of possible answers, I wuold like to output questions in random order and > answers within a quastion in random order too. Well, it is just a pseudo random number. But you cannot expect more than this. So, how to compute this pseudo number from the input data and a seed parameter? What about this: compute $seed divided by the string length of the node and pick some of the digits in the fraction part as sort key. If some nodes (questions) have the same length, you can also include the position in your computation. Example: <xsl:param name="seed" select="1" /> <xsl:template match="test"> <xsl:for-each select="question"> <xsl:sort select="substring(substring-after( $seed div (position() * string-length()), '.'), 3, 4)" data-type="number" /> <xsl:value-of select="." /> </xsl:for-each> </xsl:template> Cheers, Oliver /-------------------------------------------------------------------\ | ob|do Dipl.Inf. Oliver Becker | | --+-- E-Mail: obecker@xxxxxxxxxxxxxxxxxxxxxxx | | op|qo WWW: http://www.informatik.hu-berlin.de/~obecker | \-------------------------------------------------------------------/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] max of sum, Charly | Thread | Re: [xsl] how to output elements in, Massimo Santini - ma |
Re: [xsl] max of sum, Oliver Becker | Date | [xsl] Article: The Functional Progr, Dimitre Novatchev |
Month |
Keywords