Subject: RE: [xsl] XSLT Problem - Random Order From: Saurabh Sinha <i_am_saurabhsinha@xxxxxxxxxxx> Date: Mon, 6 Oct 2003 11:01:39 +0100 (BST) |
Hi, Thanks for your mail. What you have mentioned about ascending/descending order that thing I know. If I write the statement <xsl:sort select="@category" order="descending"/> then ouput will come as category 6, 5 , 4, 3...... For ascending it will come as category c1, c2, c3....... But I want to select the category at random order not as ascending or descending order. Suppose there are 6 categories in books.xml file. Now I want to select only 3 categories in ouput file ( e.g in html) and their position will be different - such as 4th (category="c4" in xml doc) will come at 1st position (in html doc), 6th (category="c6" in xml doc) will come at 2nd position (in html doc) and 2nd (category="c2" in xml doc) will come at 3rd position(in html doc). books.xml ---------- <?xml version="1.0"?> <books> <book category="c1"> <title>1st Book</title> <auth>Author 1</auth> </book> <book category="c2"> <title>2nd Book</title> <auth>Author 2</auth> </book> <book category="c3"> <title>3rd Book</title> <auth>Author 3</auth> </book> <book category="c4"> <title>4th Book</title> <auth>Author 4</auth> </book> <book category="c5"> <title>5th Book</title> <auth>Author 5</auth> </book> <book category="c6"> <title>6th Book</title> <auth>Author 6</auth> </book> </books> books.xsl ---------- <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> </head> <body> <table border="1" width="60%" align="center" cellpadding="0"> <xsl:apply-templates/> </table> </body> </html> </xsl:template> <xsl:template match="books"> <xsl:for-each select="//book"> <xsl:choose> <xsl:when test="@category='c4'"> <tr> <td align="center"> <xsl:value-of select="title"/> </td> <td align="center"> <xsl:value-of select="auth"/> </td> </tr> </xsl:when> <xsl:when test="@category='c6'"> <tr> <td align="center"> <xsl:value-of select="title"/> </td> <td align="center"> <xsl:value-of select="auth"/> </td> </tr> </xsl:when> <xsl:when test="@category='c2'"> <tr> <td align="center"> <xsl:value-of select="title"/> </td> <td align="center"> <xsl:value-of select="auth"/> </td> </tr> </xsl:when> </xsl:choose> </xsl:for-each> </xsl:template> </xsl:stylesheet> books.html ---------- Current Output -------------- Category Author -------- ------- 2nd Book Author 2 4th Book Author 4 6th Book Author 6 Expected Output --------------- Category Author -------- ------- 4th Book Author 4 6th Book Author 6 2nd Book Author 2 Regards, Saurabh Sinha --- Michael Kay <mhk@xxxxxxxxx> wrote: > You haven't said what criteria you want to use for > sorting - is it > descending order by category name, or what? > > You could get the order c3, c2, c1, by adding > > <xsl:sort select="@category" order="descending"/> > > immediately after the <xsl:for-each> > > You have an xsl:choose with three branches, but they > are all the same. > This makes it very difficult to understand what > exactly you are trying > to achieve. > > Michael Kay > > > > -----Original Message----- > > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On > Behalf Of > > Saurabh Sinha > > Sent: 06 October 2003 08:13 > > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx > > Subject: [xsl] XSLT Problem - Random Order > > > > > > Hi, > > > > Currently I am facing the following problem while > > converting documents into HTML from XML. I need > help > > to solve this. > > > > > > Thanks, > > > > Saurabh > > > > > > Problem: > > > > I want to see the output of books.xml file as > category > > wise. In books.xml 3 categories are given c1, c2, > c3 > > within book elements. I want to see either c3 > first or > > c2 first in html output. But everytime it is > coming as > > per .xml document. I am writing the books.xml, > > books.xsl below. Can you suggest me what specific > > command I have to give in .xsl document. > > > > > > books.xml > > ---------- > > > > <?xml version="1.0"?> > > <books> > > <book category="c1"> > > <title>ABC</title> > > <auth>XX</auth> > > </book> > > > > <book category="c2"> > > <title>SSS</title> > > <auth>YY</auth> > > </book> > > <book category="c3"> > > <title>MNB</title> > > <auth>ZZ</auth> > > </book> > > </books> > > > > > > books.xsl > > ------------ > > > > <?xml version="1.0"?> > > <xsl:stylesheet version="1.0" > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > > > <xsl:template match="/"> > > <html> > > <head> > > </head> > > <body> > > <table border="1" width="60%" > > align="center" cellpadding="0"> > > <xsl:apply-templates/> > > </table> > > </body> > > </html> > > </xsl:template> > > > > > > <xsl:template match="books"> > > <xsl:for-each select="//book"> > > > > <xsl:choose> > > > > <xsl:when test="@category='c3'"> > > > > <tr> > > <td align="center"> > > > > <xsl:value-of select="title"/> > > </td> > > <td align="center"> > > > > <xsl:value-of select="auth"/> > > </td> > > </tr> > > </xsl:when> > > > > > > <xsl:when test="@category='c1'"> > > > > <tr> > > <td align="center"> > > > > <xsl:value-of select="title"/> > > </td> > > <td align="center"> > > > > <xsl:value-of select="auth"/> > > </td> > > </tr> > > </xsl:when> > > > > > > <xsl:when test="@category='c2'"> > > <tr> > > <td align="center"> > > > > <xsl:value-of select="title"/> > > </td> > > <td align="center"> > > > > <xsl:value-of select="auth"/> > > </td> > > </tr> > > </xsl:when> > > > > </xsl:choose> > > </xsl:for-each> > > </xsl:template> > > </xsl:stylesheet> > > > > > > > > > > books.html > > ---------- > > > > Current Output > > -------------- > > > > > > Category Author > > -------- ------- > > > > ABC XX > > > > SSS YY > > > > MNB ZZ > > > > > > Expected Output > > --------------- > > > > Category Author > > -------- ------- > > > > MNB ZZ > > > > ABC XX > > > > SSS YY > > > > > > > ______________________________________________________________ > > __________ > > Yahoo! India Matrimony: Find your partner online. > > Go to http://yahoo.shaadi.com > > > > XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > > > > > XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > ________________________________________________________________________ Yahoo! India Matrimony: Find your partner online. Go to http://yahoo.shaadi.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XSLT Problem - Random Ord, Michael Kay | Thread | RE: [xsl] XSLT Problem - Random Ord, Mukul Gandhi |
RE: [xsl] XSL:FO - How to wrap non-, David . Pawson | Date | RE: [xsl] XPath 2.0: Problems with , Dimitre Novatchev |
Month |