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: 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
|