[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: sequence numbering

Subject: RE: sequence numbering
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Tue, 26 Mar 2002 17:48:19 -0000
numbering product
<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:  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.