[xquery-talk] Getting node position in a for statement
David Carlisle
davidc at nag.co.uk
Mon Jun 16 15:17:01 PDT 2008
in
let $pos := $rows/position()
$rows is (at each iteration) a single tr element so $rows/position()
will always be 1.
You want to use an "at" clause as in the for expression:
for $rows at $p in //table/tbody/tr
let $cells := count($rows/th)
let $title := $rows/ancestor::table/title...
return
<row position="{$p} cellcount="{$cells}" >{data($title)}</row>
or use an xpath rather than a for expression (so that position()
reflects the position in the sequence)
//table/tbody/tr/<row position="{position()} cellcount="{count(th)}">
{ancestor::table/title/data(.)}</row>
(This seems to be the same question, and same answer as last week
though?)
David
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
More information about the talk
mailing list