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