Subject: RE: XSLT Problem - Random Order
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Mon, 6 Oct 2003 09:37:46 +0100
|
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
|