[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Re:


Subject: Re: [xsl] Re:
From: "George Cristian Bina" <george@xxxxxxx>
Date: Thu, 8 Jan 2004 13:12:52 +0200

Hi Peter,

I guess you want something like:

<xsl:value-of select = "count(ancestor::*) + count(preceding::*)"/>

This will count the elements before the current element in document order.

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
    <xsl:template match="/">
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="*">
        <xsl:value-of select="count(ancestor::*) + count(preceding::*)"/>
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="text()"/>
</xsl:stylesheet>

will list something like 01234 for a document with 5 elements.

HTH,
George
-------------------------------------------------------------
George Cristian Bina mailto:george@xxxxxxxxxxxxx
<oXygen/> XML Editor - http://www.oxygenxml.com/


> thanks for your solution but i also have another requirement
> i should get the count of the element at that level
>
> > <A>
> >      <A1>
> >           <A12>
> >           <A13>
> >           <A14>pet</A14>
> >      </A1>
> >                 <A2>
> >           <A15>
> >           <A17>
> >      </A2>
> > ....
> > </A>
>
> suupose iam in A14 element then at that level i should know its count.ie
4
> actually i want to store the tree information in an array so i have to
> increase the counter.
>
> array['<xsl:value-of select = "$counter">'] = <xsl:value-of select =
"A14">
> Iam doing this by recursive template call but the counter is not summing
> up.
>



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords