xsl-list
[Top] [All Lists]

Re: [xsl] Random selection

2008-11-30 12:03:15
On Sun, Nov 30, 2008 at 8:38 AM, Mukul Gandhi 
<gandhi(_dot_)mukul(_at_)gmail(_dot_)com> wrote:
If you are working in Java environment, you could use the Java class
'Random' for random number support.


Hi Mukul,

What about people, who use C#, Python, VB, C++, ..., etc?

I strongly believe that recommending a non-portable solution on this
list when a known, 100% XSLT, portable one exists, should be
discouraged.


-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play



(http://java.sun.com/javase/6/docs/api/java/util/Random.html).

Supposing your input XML is (this is just an example for illustration.
your real XML could be different.):

<images>
 <image val="a.jpg" />
 <image val="b.jpg" />
 <image val="c.jpg" />
 <image val="d.jpg" />
 <image val="e.jpg" />
 <image val="f.jpg" />
</images>

The stylesheet could be:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                      xmlns:java="http://xml.apache.org/xalan/java";
                      exclude-result-prefixes="java"
                      version="1.0">

 <xsl:output method="html" />

 <xsl:template match="/">
   <xsl:variable name="max" select="count(images/image)" />
   <xsl:variable name="random" select="java:java.util.Random.new()"/>
   <xsl:variable name="x" select="java:nextInt($random, $max) + 1" />
<!-- this is the random number -->
   <html>
     <head>
       <title/>
     </head>
     <body>
       <img src="{images/image[$x]/@val}" />
     </body>
   </html>
 </xsl:template>

</xsl:stylesheet>

Here I have used the Java extension mechanism provided by Xalan.

On Sun, Nov 30, 2008 at 8:43 PM, sudheshna iyer 
<sudheshnaiyer(_at_)yahoo(_dot_)com> wrote:
Here is the more clear explanation of what I am looking for:

I need to select an image from pool of images randomly and produce <img src> 
element of html.

This xsl should read the image tags from xml and based on the number of 
image tag nodes in the xml, it
should display random image by producing <img src> element of html.

Thank you for your help.



--
Regards,
Mukul Gandhi

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>