xsl-list
[Top] [All Lists]

RE: XSLT Problem - Random Order

2003-10-06 01:37:46
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



<Prev in Thread] Current Thread [Next in Thread>