This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: sequence numbering


<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@ntlworld.com
work: Michael.Kay@softwareag.com

> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of william
> locksman
> Sent: 26 March 2002 16:34
> To: xsl-list@lists.mulberrytech.com
> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]