[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Position() vs counter variable
Subject: [xsl] Position() vs counter variable From: Maria Amuchastegui <mamuchastegui@xxxxxxxxxxx> Date: Mon, 4 Apr 2005 15:07:53 -0400 |
My data contains a series of tables that I need to number consecutively, i.e. 1, 2, 3. I want to do this using the position() property. However, because the position is relative to the parent node, the numbering is restarting whenever there is a new parent node, so I get: 1, 2, 1. Is there a way to do this using position(), or do I have to set up a counter variable? Here is the XSL: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform <http://www.w3.org/1999/XSL/Transform> " xmlns:fo="http://www.w3.org/1999/XSL/Format <http://www.w3.org/1999/XSL/Format> "> <xsl:output method="html"/> <xsl:template match="/"> <html> <body> <xsl:apply-templates select="myXMLData"/> </body> </html> </xsl:template> <xsl:template match="myXMLData"> <xsl:apply-templates select="//BTN"/> </xsl:template> <xsl:template match="//BTN"> <b><xsl:value-of select="@number"/></b> <xsl:for-each select="Section[@type='Detail']"> <table border="1"> <th colspan="6" align="left"> This is table <xsl:value-of select="position()"/>. </th> <tr> <th>ID </th> <th>Date </th> <th>Location </th> <th>Number </th> <th>Duration</th> <th>Charges </th> </tr> <xsl:apply-templates select="ServiceHeader"/> </table> <br/> </xsl:for-each> </xsl:template> <xsl:template match="ServiceHeader"> <xsl:if test="@group != '' "> <tr> <td colspan="6"><xsl:value-of select="@group"/></td> </tr> </xsl:if> <xsl:apply-templates select="message"/> </xsl:template> <xsl:template match="message"> <tr> <td><xsl:value-of select="id"/></td> <td><xsl:value-of select="date"/></td> <td><xsl:value-of select="location"/></td> <td><xsl:value-of select="number"/></td> <td><xsl:value-of select="duration"/></td> <td><xsl:value-of select="charges"/></td> </tr> </xsl:template> </xsl:stylesheet> And here is the XML: <?xml version="1.0" encoding="UTF-8"?> <myXMLData xmlns=""> <BTN number="635 5669"> <Section number="400" type="Detail" subHead1="Long distance calls" subHead2=""> <ServiceHeader group=""> <message> <id>1-01</id> <date>2005-04-23</date> <location>Quebec QC</location> <number>418 683 1234</number> <duration>1</duration> <charges>0.43</charges> <savings>.043</savings> <amount/> </message> <message> <id>1-02</id> <date>2005-04-28</date> <location>Montreal QC</location> <number>514 485 6611</number> <duration>2</duration> <charges>3.44</charges> <savings/> <amount/> </message> </ServiceHeader> </Section> <Section number="420" type="Summary"/> <Section number="430c" type="Detail" subHead1="Advantage Per Call" subHead2=""> <ServiceHeader group="Canada"> <message> <id>1-06</id> <date>2005-05-06</date> <location>Collingwood ON</location> <number>705 445 1030</number> <duration>1.4</duration> <charges>5.01</charges> <savings/> <amount/> </message> <message> <id>1-07</id> <date>2005-04-12</date> <location>Erin ON</location> <number>519 833 2380</number> <duration>1.1</duration> <charges>0.78</charges> <savings/> <amount/> </message> </ServiceHeader> </Section> <Section number="450c" type="Summary" subHead1="" subHead2=""/> </BTN> <BTN number="635 5670"> <Section number="400" type="Detail" subHead1="Long distance calls" subHead2=""> <ServiceHeader group=""> <message> <id>1-12</id> <date>2005-04-08</date> <location>Edmonton AB</location> <number>780 496 8200</number> <duration>3</duration> <charges>0.25</charges> <savings/> <amount/> </message> <message> <id>1-13</id> <date>2005-04-15</date> <location>Halifax NS</location> <number>902 490 6277</number> <duration>5</duration> <charges>1.01</charges> <savings/> <amount/> </message> </ServiceHeader> </Section> <Section number="420" type="Summary"/> </BTN> </myXMLData>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl: preserving spaces p, josh higgins | Thread | Re: [xsl] Position() vs counter var, Brian Chrisman |
Re: [xsl] Testing 2 XML documents f, Mukul Gandhi | Date | Re: [xsl] Position() vs counter var, Brian Chrisman |
Month |