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.