[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: problem with xsl:sort

Subject: RE: problem with xsl:sort
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Fri, 21 Feb 2003 15:10:20 -0000
xsl sort language
<xsl:for-each> processes a set of nodes. The set of nodes is determined
by the select attribute. Saying select="." selects exactly one node.

The <xsl:sort> element determines the order in which the set of nodes
will be processed. For a set containing only one node, there is only one
possible order of processing, so <xsl:sort> is completely pointless.

I hope this makes it clearer.

I guess what you really wanted was for me to rewrite your code. You
picked the short straw on that - I'm not Jeni Tennison.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Lorenzo De Tomasi
> Sent: 21 February 2003 09:52
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re:  problem with xsl:sort
> 
> 
> Thank you very much for your answers! Now it works...
> But I don't understand what you want to tell me here:
> 
> on 18-02-2003 0:35, Dion Houston at dionh@xxxxxxxxxxxxxxxxxxxxx wrote:
> 
> > Also note that:
> > 
> > <xsl:for-each select=".">
> > 
> > Will always execute exactly once because "." is short for 
> "self::*" -- 
> > the context node.
> 
> and here
> 
> on 18-02-2003 0:46, Michael Kay at michael.h.kay@xxxxxxxxxxxx wrote:
> 
> > <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.
> 
> What's the problem? Have I done something wrong? Is there a 
> better way to do it? Can you try to explain me with some examples?
> 
> Thank you again :) 
> ______________________________________________________________
> ______________
> 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> 
> ______________________________________________________________
> ______________
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.