xsl-list
[Top] [All Lists]

RE: Parametrized xsl:sort

2002-08-29 21:03:57


-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of 
Peter Davis
Sent: Friday, 30 August 2002 12:57 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Parametrized xsl:sort


On Thursday 29 August 2002 19:15, Neale Morison wrote:
To be specific, I want the result of:
        <xsl:sort select="$sortkey" order="descending"/>

Since a normal variable doesn't change, the sort will have no
effect (but I'm
sure you already figured this out).

with parameter sortkey:
        <xsl:with-param name="sortkey" select="@name"/>

If you pass select="@name", it will evaluate "@name" in the
context of the
with-param, not in the sort.  So you probably want to change this to:

<xsl:with-param name="sortkey" select="'@name'"/>

which will pass the string '@name' to be evaluated later.

to be equivalent to:
        <xsl:sort select="@name" order="descending"/>

To evaluate the string, you need to use some kind of
extension function.  Look
in the documentation of whatever processor you use; it will
probably look
like:

<xsl:sort order="descending" select="xxx:evaluate($sortkey)"/>

The 'xxx' will be associated with an extension namespace
specific to your
processor.  The evaluate() function will take the string $sortkey and
evaluate it as an XPath expression.

--
Peter Davis

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

Thanks. I thought I might be able to do it without an eval, but the eval
method does work. Regards,
Neale

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



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