|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Getting node position in a for statementVallone, Philip Mr CTR USA AMC Philip.Vallone at us.army.milMon Jun 16 10:36:58 PDT 2008
Thank you David, The question is different. Forgive me as I am learning :). I want to return the position of <tr> within its parent. E.g. <row xpath="root/table/tbody/tr" position="1" cellcount="1">Table 1 - Index</row> <row xpath="root/table/tbody/tr" position="2" cellcount="1">Table 1 - Index</row> <!-- New table started --> <row xpath="root/table/tbody/tr" position="1" cellcount="2">Table 2 - Dictionary</row> <row xpath="root/table/tbody/tr" position="2" cellcount="2">Table 2 - Dictionary</row> <row xpath="root/table/tbody/tr" position="3" cellcount="2">Table 2 - Dictionary</row> <row xpath="root/table/tbody/tr" position="4" cellcount="2">Table 2 - Dictionary</row> The expression you recommended returns a the sequence of nodes in the entire document. <row xpath="root/table/tbody/tr" position="1" cellcount="1">Table 1 - Index</row> <row xpath="root/table/tbody/tr" position="2" cellcount="1">Table 1 - Index</row> <row xpath="root/table/tbody/tr" position="3" cellcount="2">Table 2 - Dictionary</row> <row xpath="root/table/tbody/tr" position="4" cellcount="2">Table 2 - Dictionary</row> <row xpath="root/table/tbody/tr" position="5" cellcount="2">Table 2 - Dictionary</row> <row xpath="root/table/tbody/tr" position="6" cellcount="2">Table 2 - Dictionary</row> .... Sorry for not being clear. Thanks for the help, Phil -----Original Message----- From: David Carlisle [mailto:http://x-query.com/mailman/listinfo/talk] Sent: Monday, June 16, 2008 9:17 AM To: Vallone, Philip Mr CTR USA AMC Cc: http://x-query.com/mailman/listinfo/talk Subject: Re: Getting node position in a for statement 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. ________________________________________________________________________
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






