> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> Lorenzo De Tomasi
> Sent: 17 February 2003 23:17
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: problem with xsl:sort
>
>
> I have a problem with xsl:sort
> I have written this code
<xsl:for-each select=".">
<xsl:sort select="@type" data-type="text" order="ascending"/>
<xsl:for-each select="."> processes a node-set that always contains
exactly one node. So there isn't very much point in sorting it.
Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
> ______________________________________________________________
> ______________
> XML
>
> <?xml version="1.0" encoding="UTF-8"?>
> <?xml-stylesheet type="text/xsl" href="contact_temp.xsl"?>
> <xCVP xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:a="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"
> xmlns:n="urn:oasis:names:tc:ciq:xsdschema:xNL:2.0"
> xsi:schemaLocation="">
> <PersonDetails lang="eng">
> <Languages>
> <Language type="other language" speak="good"
> read="excellent" write="good" code="eng">English</Language>
> <Language type="mother tongue" speak="excellent"
> read="excellent" write="excellent" code="ita">Italiano</Language>
> <Language type="other language" speak="basic"
> read="basic" write="basic" code="fr">Fran?ßais</Language>
> </Languages>
> </PersonDetails>
> </xCVP>
> ______________________________________________________________
> ______________
> XSL
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:template match="xCVP/PersonDetails">
> <html>
> <body lang="eng">
> <section>
> <h>languages</h>
> <p>
> <xsl:apply-templates select="Languages/Language"/>
> </p>
> </section>
> </body>
> </html>
> </xsl:template>
>
> <xsl:template match="PersonInfo">
> <xsl:apply-templates/>
> </xsl:template>
>
> <xsl:template match="Languages">
> <xsl:apply-templates/>
> </xsl:template>
>
> <xsl:template match="Language">
> <xsl:for-each select=".">
> <xsl:sort select="@type" data-type="text" order="ascending"/>
> <xsl:choose>
> <xsl:when test="@type='mother tongue'">
> <l><span class="label"><xsl:value-of
> select="@type"/></span><xsl:text> </xsl:text><xsl:value-of
> select="."/></l>
> </xsl:when>
> <xsl:otherwise>
> <l><span class="label"><xsl:value-of
> select="@type"/></span><xsl:text> </xsl:text><xsl:value-of
> select="."/><xsl:text> </xsl:text><span
> class="label">speak</span><xsl:text>
> </xsl:text><xsl:value-of select="@speak"/><xsl:text>
> </xsl:text><span class="label">read</span><xsl:text>
> </xsl:text><xsl:value-of select="@read"/><xsl:text>
> </xsl:text><span class="label">write</span><xsl:text>
> </xsl:text><xsl:value-of select="@write"/></l>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:for-each>
> </xsl:template>
>
> </xsl:stylesheet>
> ______________________________________________________________
> ______________
>
> and tested it in Netscape 7 for mac and the result is
>
> ______________________________________________________________
> ______________
> RESULT
>
> languages
> other language English speak good read excellent write good
> mother tongue Italiano other language Français speak basic
> read basic write basic
> ______________________________________________________________
> ______________
>
> As you can seen the result is not what I want. The lines are
> not ordered by type attribute, but by xml order. Have I done
> something wrong?
>
> With xslt can I order a list created with xsl:for-each
> specifying a precise order? i.e. I want to make a list and I
> want to display first the items with attribute type="special
> offer" in ascending order and then all the other ones by
> ascending order.
>
> XML
> <item type="special offer!">book</item>
> <item>book</item>
> ...
>
> RESULT
> special offer! book $10
> special offer! cd $5
> special offer! doll $10
> book $20
> cd $10
> doll $20
>
> Thank you very much!
> ______________________________________________________________
> ______________
> Lorenzo De Tomasi, student of Information Architecture,
> Interface Design and Visual Design via Bellaria 6, 21018
> Sesto Calende (Varese), Italia
> phone: +39 (0)331 924649
> mobile: +39 329 3941065; +39 333 8979304
> e-mail: lorenzo.detomasi@xxxxxxxxx; lorenzo.detomasi@xxxxxxxx
> website: http://biografica.tzone.it
> ICQ uin: 11313132
> Yahoo! Instant Messenger id: tummait
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|