RE: [xsl] Get position of parent

Subject: RE: [xsl] Get position of parent
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 17 Jan 2009 16:52:43 -0000
It rather depends what you mean by "position", but if you mean the number of
preceding siblings plus one, you can use

count(../preceding-sibling::*)+1

or if you prefer

<xsl:number select=".." count="*"/>

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: Philip Vallone [mailto:philip.vallone@xxxxxxxxxxx] 
> Sent: 17 January 2009 13:42
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Get position of parent
> 
> Hello List,
> 
> What is the best way to get the position of a parent node? In 
> the below xml, assume my context node is para:
> 
> /table/tgroup/tbody/row/entry[1]/para
> 
> If my context node is para, how do I get the position of its 
> parent entry?
> 
> <table frame="all" align="center" id="C-TABLE3" width="90%">
> 	<title>Title</title>
> 	<tgroup cols="3">
> 		<colspec colnum="1" colname="spycolgen1" colwidth="*"/>
> 		<colspec colnum="2" colname="spycolgen2" colwidth="*"/>
> 		<colspec colnum="3" colname="spycolgen3" colwidth="*"/>
> 		<tbody>
> 			<row>
> 				<entry>
> 					<!--get position of 
> parent::entry-->
> 					<para id="table3-para 1">context
> node</para>
> 				</entry>
> 				<entry>
> 					<para>test</para>
> 				</entry>
> 				<entry>
> 					<para>test</para>
> 				</entry>
> 			</row>
> 		</tbody>
> 	</tgroup>
> </table>
> 
> 
> 
> 
> Thanks
> Phil

Current Thread