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(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Saurabh Sinha
Sent: 06 October 2003 08:13
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
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