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: RE: sequence numbering.


Hi the solution Michael Suggested seems to fit my purpose, But 
Since i am a newbie to XSL , I do not know how to form a temporary 
tree that contains sorted sequence.
Michael's explaination made me pretty much clear of what has to be 
done. But i do not know how it has to be done.
If any one can please suggest me how to go about doing it or give 
me a link to any reference document, It should be of much help to 
me
Thanks
William

On Tue, 26 Mar 2002 Michael Kay wrote :
><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
>


 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]