Subject: RE: Generating serial no.s for XML tags
From: Mukul <mukulw3@xxxxxxxxx>
Date: Mon, 28 Apr 2003 04:52:28 -0700 (PDT)
|
Thank you for reply. This is exactly I needed. Its
quite simple. Thanks Marcus for your reply also ..
Regards,
Mukul
--- Jarno.Elovirta@xxxxxxxxx wrote:
> Hi,
>
> > I want to write a XSLT which displays serial no.s
> as
> > the <tag> TAGs are found
> >
> > I have written a XSL as below -
> > <?xml version="1.0" encoding="UTF-8"?>
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
> > <xsl:template match="rootelem/tag">
> > <xsl:value-of select="count(preceding::tag) +
> 1"
> > />
> >
> > <xsl:if test="total">
> > <xsl:value-of
> select="count(preceding::tag)
> > + 1" />
> > </xsl:if>
> >
> > </xsl:template>
> > </xsl:stylesheet>
> >
> > I want that when <total> tag comes , an extra
> serial
> > no. gets generated which is one more than the
> previous
> > one. After the serial no. of <total> tag is o/p,
> the
> > next serial no. resumes as 1 more than this.
> >
> > The above stylesheet is generating output as
> 122345566
> > . I want the o/p to come as 123456789(this
> includes
> > serial no.s for <total> tag).
>
> <xsl:template match="tag">
> <xsl:variable name="x"
> select="count(preceding::tag) +
> count(preceding::tag[total]) + 1" />
> <xsl:value-of select="$x"/>
> <xsl:if test="total">
> <xsl:value-of select="$x + 1" />
> </xsl:if>
> </xsl:template>
>
> But you might want to consider writing e.g. a
> recursive template to generate the serial number to
> eliminate the use of preceding axis.
>
> Cheers,
>
> Jarno - Assemblage 23: Document (Endanger Mix)
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|