Subject: Re: Choosing different sorts
From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx>
Date: Thu, 15 Jul 2004 00:57:32 -0700 (PDT)
|
Hi Derek,
<xsl:sort select="*[name(.) = $sortfield]"/> is the
correct way. The predicate [name(.) = $sortfield]
makes the above xsl:sort syntax equivalent to
<xsl:sort select="name"/> ,if $sortfield equals to
name
<xsl:sort select="status"/> ,if $sortfield equals to
status
<xsl:sort select="id"/> ,if $sortfield equals to id
Your xsl:choose syntax is invalid, and shall throw an
error "xsl:sort not allowed at this place".
xsl:sort should be direct child of xsl:apply-templates
or xsl:for-each
Regards,
Mukul
--- Derek Hohls <DHohls@xxxxxxxxxx> wrote:
> I had a look in the archives before posting, and am
> not sure I understand the method which uses:
>
> <xsl:sort select="*[name(.) = $sortfield]"/>
>
> I have tried, in my code to have:
>
> <xsl:for-each select="file">
> <xsl:choose>
> <xsl:when test="$sort='design'"><xsl:sort
> select="name"/></xsl:when>
> <xsl:when test="$sort='stat'"><xsl:sort
> select="status"/></xsl:when>
> <xsl:otherwise><xsl:sort
> select="id"/></xsl:otherwise>
>
> </xsl:choose>
>
> where $sort is a parameter passed in (via another
> web page).
> (NB: the actual select fields are quite long path
> strings...)
>
> but this is clearly wrong!
>
> Any guidance on this area would be welcome.
>
> Thanks
> Derek
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail
|