[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] sequence numbering
Subject: RE: [xsl] sequence numbering From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Tue, 26 Mar 2002 17:48:19 -0000 |
<xsl:number> gives you the position of the element in the source tree, not in the sorted sequence. To get the number in the sorted sequence, do a two-phase transformation: create a temporary tree that contains the sorted products, then process this (using xx:node-set()) to add the numbers. To get the number for a product among all the products of the same colour, use <xsl:number count="product[color=$this_color]"/> Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of william > locksman > Sent: 26 March 2002 16:34 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] sequence numbering > > > <products> > <product id = "1"> > <name>product1</name> > <weight>56</weight> > <color>blue</color> > </product> > <product id = "2"> > <name>product2</name> > <weight>56</weight> > <color>red</color> > </product> > <product id = "3"> > <name>product3</name> > <weight>56</weight> > <color>red</color> > </product> > <product id = "4"> > <name>product4</name> > <weight>56</weight> > <color>blue</color> > </product> > <product id = "5"> > <name>product5</name> > <weight>56</weight> > <color>blue</color> > </product> > </products> > > for the above xml for all the color elements in the xml file, > get the products.. in other words group the products based on > there colors > and then assosiate the products with a serial num . This serial id > is > in the series of 1,2,3... 1 for the first product that is of a > perticular color, 2 for the next product and so on.. > > xsl i wrote.. > > <?xml version="1.0"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:template match="/"> > <xsl:for-each select="//product/color"> > <xsl:sort select="." data-type="text" order="descending"/> > <xsl:number format="1" count="product"/> ...<xsl:value-of > select="."/>..<xsl:value-of select="../name"/> > <br></br> > </xsl:for-each> > </xsl:template> > </xsl:stylesheet> > > with above xsl , I am getting an out put > > 3 ...red..product3 > > 2 ...red..product2 > > 5 ...blue..product5 > > 4 ...blue..product4 > > 1 ...blue..product1 > > which is quite understandable... But i wanted the output which > should look like > > 1 ...red..product3 > > 2 ...red..product2 > > 1 ...blue..product5 > > 2 ...blue..product4 > > 3 ...blue..product1 > > that is for each of the colors of the same type i need the > sequence number to start from 1 > > any suggestions and ideas will be most appreciated and helpful > many thanks in advance > bill.. > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] sequence numbering, william locksman | Thread | [xsl] sequence numbering, william locksman |
[xsl] sort by attribute text, Mike Ferrando | Date | Re: [xsl] sort by attribute text, David Carlisle |
Month |