RE: [xsl] Determine position in node sequence based on criteria

Subject: RE: [xsl] Determine position in node sequence based on criteria
From: "Houghton,Andrew" <houghtoa@xxxxxxxx>
Date: Wed, 30 Jun 2010 09:39:43 -0400
> From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
> Sent: Wednesday, June 30, 2010 05:40 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Determine position in node sequence based on
> criteria
>
> In XQuery you could do
>
> for $s at $p in ../s where matches($s/@c, '^[ab]$') and matches($s,
> $re)
> return $p
>
> The nearest equivalent in XPath 2.0 is
>
> for $p in 1 to count(../s), $s in (../s)[$p] return
> if (matches($s/@c, '^[ab]$') and matches($s, $re)) then $p else ()
>
> But I agree it's rather cumbersome.

Agreed. It seems like it would be real handy to have position() take
an argument:

 position(../s[])

and return the position of the matching items... or loosen the
restrictions on position() in a for expression, or have a different
function where you could get the position in a for expression:

for $i in ../s
 if (...) then $i/position() else ()


Thanks, Andy.

Current Thread