Re: [xsl] Calculating cumulative values and min/max

Subject: Re: [xsl] Calculating cumulative values and min/max
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 13 Jun 2007 10:00:26 +0100
On 6/13/07, Simon Shutter <simon@xxxxxxxxxxx> wrote:
a) in the predicate [@x = current()/@x], why is current node used and not
the context node used?  I guess I'm confused at to which @x is which in the
predicate.

current() returns the current node from outside of the the XPath, so if you have:

parent::*[@x = current()/@x]

then you are comparing @x on the parent node (the first @x in the
predicate), and @x on the node thats currently being matched (the
second @x).

Its the same as maintaining the pointer yourself:

<xsl:variable name="this" select="."/>
<xsl:value-of select="parent::*[@x = $this/@x"/>

b) is it possible to calculate min/max values is this only possible in
XSLT/XPATH 2.0?

You can do it in 1.0 by sorting the values and picking the first/last:


http://www.dpawson.co.uk/xsl/sect2/N5121.html#d7114e427

...but yes in 2.0 there's min() and max()

cheers
andrew

Current Thread