Re: [xsl] position within same nodes

Subject: Re: [xsl] position within same nodes
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 19 Jul 2001 15:38:29 -0400
Larry,

Try (count(preceding-sibling::meep)+1), or (count(preceding-sibling::*[name()=name(current())])+1) for the general case.

<xsl:number/> is another way to go. It can get fairly complex (look it up in the spec), but in this case you shouldn't need any attributes to configure the counting: it'll default to what you want. Bind it to a variable if you need to retrieve it through XPath.

Cheers,
Wendell

At 02:35 PM 7/19/01, you wrote:
What is the XPath to get the position of a given node relative to its
siblings of the same name?  Eg,

<blah>
 <argh/>
 <meep/>
 <meep/>
 <stuff/>
 <meep/>
</blah>

I'm looking for an XPath statement that would return 1 for the first meep,
2 for the second, and 3 for the 3rd meep, rather than 2, 3, and 5 (which
is what plain position() returns).

I'm trying to count the number of siblings and subtract the number of
siblings of the same type, then subtract that from position(), but I can't
get either of the first two parts there to work either.  Does anyone have
any suggestions?

--Larry Garfield
lgarfiel@xxxxxxxxxxxxxxxxxxx


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
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: http://www.mulberrytech.com/xsl/xsl-list



Current Thread