[xsl] Re: Re: Sorting on call-template value?

Subject: [xsl] Re: Re: Sorting on call-template value?
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Mon, 14 Apr 2003 06:52:37 +0200
"Mike Brown" <mike@xxxxxxxx> wrote in message
news:200304132051.h3DKp915023133@xxxxxxxxxxxxxxxxxxx
> Dimitre Novatchev wrote:
> >
> > >
> > > Use a variable?
> > >
> > > <xsl:variable name="sortkey">
> > >   <xsl:call-template name="foo"/>
> > > </xsl:variable>
> > > <xsl:for-each select="/some/nodes">
> > >   <xsl:sort select="string($sortkey)"/>
> > >   ...
> >
> > Obviously, this is not a solution -- a sort key must be a function of
the
> > current node if it is to be of any use. The value of the sort key above
> > would be constant for all /some/nodes and will not cause any changes in
the
> > order  they are represented in the node-list.
> >
>
> Obviously, you are much better than me at divining what he wanted, based
on
> his unclear question. It sounded to me like he just wanted to use the
result
> of a call-template *in* his sort key. I assumed he would be doing
something
> like <xsl:sort select=". = xx:node-set($sortkey)"/>. Obviously, I was
wrong.
> Obviously.

It is *obvious* when reading the original post:

"Perhaps a better way to phrase the question might be this: You can sort on
the value of functions intrinsic to XSL, such as position() or
substring-before() etc.  Is it possible to write your own "functions" as xsl
templates, and sort on the value returned from those?"

What this is all about is the possibility in XSLT 1.0 to use one's own
functions that return the sort key.

And the answer is that this is not possible with xsl:sort in XSLT 1.0, but a
generic sort template can be used as in

http://www.biglist.com/lists/xsl-list/archives/200303/msg00007.html




=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL




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


Current Thread