xsl-list
[Top] [All Lists]

Re: Choosing different sorts

2004-07-15 00:57:32
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(_at_)csir(_dot_)co(_dot_)za> 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 


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