Re: [xsl] dynamic sorting

Subject: Re: [xsl] dynamic sorting
From: Jörg Heinicke <joerg.heinicke@xxxxxx>
Date: Sun, 4 Nov 2001 22:55:02 +0100
Hi Danny,

some ways are possible. For example the following:


        <country>great britain</country>


<xsl:stylesheet .....>

<!-- name is standard, pass another value to the stylesheet -->
<xsl:param name="sort">name</xsl:param>

<xsl:template match="table">
    <xsl:apply-templates select="row">
        <xsl:sort select="*[name() = $sort]"/>

<xsl:template match="row">
    <xsl:value-of select="name"/>
    <xsl:value-of select="age"/>
    <xsl:value-of select="city"/>
    <xsl:value-of select="country"/>


For this way you need a parameter, that you pass to the stylesheet. I don't
know, in which way you start your transformation. But I know, with Cocoon 2
this version can be easily realized. What's not possible, is <xsl:sort
select="$sort"/>. Only the workaround is working.

Hope this helps,


> Hi all,
> I have been searching the archives for an answer to my question, and I'm
> very surprised I didn't find anything.
> The problem I have relates to sorting columns in a table diplayed in the
> browser.  Lets say my table has the folowing columns: Name, Age, City,
> Country, etc...  I want the user to be able to click on any column name
> re-sort the results by his/her criteria.  I have been trying to figure out
> how to do this, but it seems to me that the XSL template would have to be
> created dynamically.  Can I do this kind of sorting strictly in XSL, or do
> have to use some kind of scripting language (JavaScript, VB Script)?
> Thanks in advance,
> Danny

 XSL-List info and archive:

Current Thread