Thanks again David,
I went for the xsl solution and it works beautifully.
Erwin
-----Ursprüngliche Nachricht-----
Von: David Carlisle [mailto:davidc(_at_)nag(_dot_)co(_dot_)uk]
Gesendet: Donnerstag, 11. September 2003 18:33
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Betreff: Re: [xsl] how to get position of node in node-set
Node sets are sets and so don't have an intrinsic order.
So nodes don't really have a position in a set (you can't for example
sort the nodes and save the sorted list in a set)
You can ask what is the position if the nodes in the set were sorted
into document order, although actually it's not so easy.
If the nodes are siblings and you are on <entry text="ccc"/>
then you want
count(preceding-sibling::entry)+1
however you only want to count nodes that are in $legend
so that would be
count(preceding-sibling::entry[(_at_)text=$legend])+1
if your text attribute uniquely determines the node, or something like
count(preceding-sibling::entry[count(.|$legend)=count($legend)]+1
otherwise.
They are all pure xpath solutions, or you could use xsl, as in
<xsl:for-each select="$legend">
<xsl:if test="@text='ccc'"><xsl:value-of select="position()"/></xsl:if>
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list