xsl-list
[Top] [All Lists]

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

2010-06-30 08:40:07
From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com]
Sent: Wednesday, June 30, 2010 05:40 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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.



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--