Subject: RE: [xsl] Generating serial no.s for XML tags From: Jarno.Elovirta@xxxxxxxxx Date: Mon, 28 Apr 2003 14:06:20 +0300 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Vertical display, Sundar Shanmugasunda | Thread | RE: [xsl] Generating serial no.s fo, Mukul |
Re: [xsl] Generating serial no.s fo, Marcus Andersson | Date | [xsl] Documenting XML schema: a sch, Graham Hannington |
Month |