|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: finding position in list of siblings
Hi John,
At 02:56 PM 7/9/2004, you wrote: I'm trying to find the context node's position relative to a list of identically named nodes. For example, given the following XML: <xsl:template match="BROTHER"> <xsl:value-of select="count(BROTHER/preceding-sibling::*)" /> <xsl:value-of select="count(preceding-sibling::node()[.='BROTHER'])" /> </xsl:template> Try "count(preceding-sibling::BROTHER) + 1" The way XPath works is that a relative path (one not starting with '/') starts from the context node -- in a template matching "BROTHER" the context node will be each BROTHER picked up for processing in turn. Starting at the context node, count the preceding siblings named BROTHER with preceding-sibling::BROTHER, add one, and that's the number you're after. Alternatively, use the <xsl:number> instruction as a full-featured alternative that will let you count all kinds of things (such as brothers and sisters but not friends), get multi-leveled numbering (like 2.3.4), give the numbers special formatting, etc. In this case, plain <xsl:number/> would get you exactly what you wanted with its various attributes ('count', 'level', 'format' etc.) left to their defaults. Cheers, Wendell
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








