Subject: FW: [xsl] random output from a xml simple document From: "Jarno Elovirta" <jarno@xxxxxxxxxxxxxx> Date: Thu, 28 Dec 2000 13:50:55 +0200 |
Hip hei! > XSL processor = Xalan > how can I output (html)"just one flower" randomly any time? > from a xml simple document like this > > <plants> > <flower>Magnolia</flower> > <flower>Iris</flower> > <flower>Sunflower</flower> > <flower>Petunia</flower> > <flower>Daisy</flower> > <flower>Coliflor</flower> > <flower>Rosa</flower> > <flower>Patata</flower> > </plants> Did you have something like this in mind? [c:\temp]type test.xml <?xml version="1.0" encoding="ISO-8859-1"?> <plants> <flower>Magnolia</flower> <flower>Iris</flower> <flower>Sunflower</flower> <flower>Petunia</flower> <flower>Daisy</flower> <flower>Coliflor</flower> <flower>Rosa</flower> <flower>Patata</flower> </plants> [c:\temp]type test.xsl <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java"> <xsl:output method="html" indent="yes"/> <xsl:template match="/"> <html> <head> <title /> </head> <body> <xsl:variable name="R" select="java:java.util.Random.new()" /> <xsl:variable name="r" select="ceiling(count(plants/flower) * java:nextDouble($R))" /> <xsl:value-of select="plants/flower[$r]" /> </body> </html> </xsl:template> </xsl:stylesheet> [c:\temp]xalan2-j -in test.xml -xsl test.xsl -ts Line #16, Column #69: variable, select='java:java.util.Random.new()': java.util.Random@3c1b02 Line #17, Column #93: variable, select='ceiling(count(plants/flower) * java:nextDouble($R))': 4 Line #18, Column #50: value-of, select='plants/flower[$r]': org.apache.xalan.stree.ElementImpl@6f9157 <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body>Petunia</body> </html> Seems to work with both Xalan-J and Xalan2-J. There is a (astronomically small) possibility that nextDouble() will return 0, in which case plants/flower[$r] will return an empty node list, so you should adjust the scale to [java.lang.Double.MIN_VALUE,1] - or just use plants/flower[1] when $r = 0. Jarno - Funker Vogt: Subspace XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] random output from a xml simp, Aniceto López | Thread | [xsl] Sortable data-table, Koetje Boe |
[xsl] Page-break/Static content, Tobi Kamke | Date | Re: [xsl] Page-break/Static content, Alexey Gokhberg |
Month |