[xsl] Re: Counting nodes efficiently

Subject: [xsl] Re: Counting nodes efficiently
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Wed, 18 Feb 2004 21:45:42 +0100
"Brian Grainger" <granam@xxxxxxxxxxxxx> wrote in message
news:opr3k0tsch8u8pov@xxxxxxxxxxxxxxxxxxxxxx
> Greetings.
>
> I've been using Jeni's method from the XSLT FAQ to assign unique id's to
> nodes. In order to speed things up, can anyone think of a way that I could
> store the running totals for the different nodes, rather than having to
> call the count() function repeatedly? A generalized method would obviously
> be the best, so that it could be applied to any arbitrary set of nodes,
> but I don't know if this is even possible.
>
> <xsl:template match="*">
>    <xsl:variable name="name" select="name()" />
>    <xsl:element name="{name()}">
>      <xsl:attribute name="id">
>        <xsl:value-of select="concat($name, '-',
>        count(preceding::*[name()= $name]) +
>        count(ancestor::*[name()= $name]))" />
>      </xsl:attribute>
>      <xsl:apply-templates />
>    </xsl:element>
> </xsl:template>

Maybe I don't understand well something -- why don't you use generate-id|()
?


Cheers,

Dimitre Novatchev,
FXSL developer,

http://fxsl.sourceforge.net/ -- the home of FXSL
Resume: http://fxsl.sf.net/DNovatchev/Resume/Res.html




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


Current Thread