Re: [xsl] how to get position of node in node-set

Subject: Re: [xsl] how to get position of node in node-set
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 11 Sep 2003 12:42:06 -0400

Your problem has been a theme lately. (I hope you've been reading.)

At 12:06 PM 9/11/2003, you wrote:
I have a node-set of entries that all have different values for their text attribute.
An entry looks like this <entry text="aaa"/>.
This node set is build through muenchian grouping and assigned to a variable called 'legend'.

Now, for some current entry, I need to know the position of an entry with the same text attribute
within the $legend node-set.

eg. $legend contains entries <entry text="aaa"/>, <entry text="bbb"/> <entry text="ccc"/>.
for some entry <entry text="ccc"/> I need to get the number 3.

As a result tree fragment (constructed by the processor and bound to a variable), $legend can't be inspected this way, so if you can't find a way to see that a <entry text="ccc"/> node in your source *will be* the third in your order, you're stuck.

If $legend is a true node-set, however, you can traverse it in the usual way, e.g. ask count($legend/entry[@text=current()/@text]/preceding-sibling::*)+1.

To make $legend a true node set, use XSLT 2.0 (the draft is partially implemented in the current version of Saxon), or, in XSLT 1.0, your friendly vendor's node-set() extension function.


====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================

XSL-List info and archive:

Current Thread