[xsl] Sorting on call-template value... solutions provided... (RIP)

Subject: [xsl] Sorting on call-template value... solutions provided... (RIP)
From: "Randy Oxentenko" <randy@xxxxxxxxxxxxx>
Date: Mon, 14 Apr 2003 23:46:28 -0500
Raj,

Okay.  I don't understand what is so unclear about this.  I want to be able
to create a user-defined transformation function for sorting purposes.  It
is already possible to do this with intrinsic xpath functions.  For example,
I can do something like this:

<xsl:for-each select="//name">
    <xsl:sort select="substring-after(.,'-')"/>
    ... do my processing here ...
</xsl:for-each>

Instead of using intrinsic functions such as substring-after as shown above,
I want to be able to create my own transformation function directly in XSLT
using a template defined for the purpose.  That is a straightforward
concept, although I may not be articulating it well.

A gentleman named Dimitre Novatchev already explained that there is a way to
do this in XSLT 2.0 using xsl:function, but that you cannot do this directly
in XSLT 1.0, and he supplied a pointer to an alternative technique which can
be used with XSLT 1.0.

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

Another gentelman named Mike Brown supplied a pointer to another technique
that involves the use of extension functions, which are part of exslt.  This
technique would use features of XSLT that go beyond the defined standard.

http://exslt.org/func/elements/function/index.html

Question asked.  Question answered.  Thanks to all for your input.  May this
topic rest in peace.

Randy Oxentenko


----- Original Message -----
From: "Avula, Raj" <ravula@xxxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, April 14, 2003 9:17 PM
Subject: RE: [xsl] Sorting on call-template value?


>
> I don't understand your explanation on why it does not work.
>
> > The value returned from call-template would
> >presumably vary for every possible node in the "for-each" list
> NO. Value is being assigned to the variable out side for-each block.
> It is just being used inside for-each.
>
>
> >The example
> >shown below would have a single value for the variable "sortkey".  It
would
> >not be very useful unless it could be different for each node in
>
> Can you explain this better. May be I am missing something here.
> Sorting will be done basically on one attribute or element. What do you
mean
> by different for each node.
>
>
>
>
> -----Original Message-----
> From: Randy Oxentenko [mailto:randy@xxxxxxxxxxxxx]
> Sent: Sunday, April 13, 2003 12:08 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Sorting on call-template value?
>
>
> I don't think that would work.  The value returned from call-template
would
> presumably vary for every possible node in the "for-each" list.  The
example
> shown below would have a single value for the variable "sortkey".  It
would
> not be very useful unless it could be different for each node in
> "/some/nodes".
>
> Thanks,
>
> Randy Oxentenko
>
> ----- Original Message -----
> From: "Mike Brown" <mike@xxxxxxxx>
> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> Sent: Sunday, April 13, 2003 1:58 PM
> Subject: Re: [xsl] Sorting on call-template value?
>
>
> > Randy Oxentenko wrote:
> > > I am a novice with XSLT.  My question is with respect to the child of
> > > <xsl:for-each> that is <xsl:sort>.  Is it possible to use a result
> returned
> > > from <xsl:call-template> as the sort key?
> > >
> > > 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?
> >
> > 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)"/>
> >   ...
> >
> >
> >  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> >
> >
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>
>


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


Current Thread