[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