xsl-list
[Top] [All Lists]

Re: Re:

2004-01-08 04:12:52
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(_at_)oxygenxml(_dot_)com
<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



<Prev in Thread] Current Thread [Next in Thread>
  • Re: Re:, Peter_Ivan
    • Re: Re:, George Cristian Bina <=