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(_at_)firstam(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
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(_at_)oxentenko(_dot_)com]
Sent: Sunday, April 13, 2003 12:08 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_at_)skew(_dot_)org>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
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