You are following the well-trodden mistake of thinking "I want the
position of something, therefore I need the position() function".
The position() function gives you the position of a node in the list of
nodes you are currenly processing.
If you want the position of a node relative to related nodes in the same
tree, there are two ways of doing it: xsl:number, and count(). For
example, count(preceding::*). In this example, xsl:number is a better
bet.
Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com
-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Ted Stresen-Reuter
Sent: 10 March 2003 15:21
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Get Position of Node in Ancestor Context
Hi,
I'm trying to get the position of the current node in the
context of an
ancestor.
For example, I have a form element that has a number of children
elements, including non-form elements (such as P and DIV
elements). I'm
trying to retrieve the position of an INPUT element relative to the
parent FORM element, but not taking into account any non-form
elements
(such as P and DIV elements).
Currently I have a template that matches "input | select | textarea"
but because they occur in the context of a TD element, position()
returns "1". I've tried using <xsl:value-of
select="ancestor::form/*/*[position()]" />, but this just isn't doing
the trick.
Any suggestions how I can get the position of the current element
relative to a parent form element?
Ted Stresen-Reuter
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list