[xsl] limit the results of preceding in predicate

Subject: [xsl] limit the results of preceding in predicate
From: Marc Lambrichs <marc.lambrichs@xxxxxxxxxxxxx>
Date: Wed, 14 Feb 2007 10:50:31 +0100
Suppose $tail is a nodeset of 'A' nodes:
<xsl:variable name="tail" select="//A"/>
All 'A' nodes have an attribute 'property' which contains a number.

Now I want to find the first 'A' node inside $tail that has a certain property ( in this case: the sum of all preceding @property = $someNumber ).

If you use the following declaration just once, there's no problem.

<xsl:variable name="test" select="$tail[sum(preceding-sibling::A/@property) = $someNumber][1]"/>

However, if $tail is part of a recursion process and changes, how can I make sure that the 'preceding-sibling::A' are restricted to the current $tail nodes?

--
Marc

Current Thread