Subject: RE: [xsl] sorting and grouping From: "m.vanrootseler" <m.vanrootseler@xxxxxxxxx> Date: Mon, 5 Jul 2004 18:26:03 +0200 |
Thanks for you help, Mukul. When I read your solution, it makes perfect sense to me. Mick -----Oorspronkelijk bericht----- Van: Mukul Gandhi [mailto:mukul_gandhi@xxxxxxxxx] Verzonden: zaterdag 3 juli 2004 15:41 Aan: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Onderwerp: RE: [xsl] sorting and grouping Hi Mick, Please find below the Muenchian Grouping solution to the problem described by you - <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:key name="by-jan" match="person[birthmonth = 'January']" use="birthday"/> <xsl:template match="/persons"> <xsl:for-each select="person[birthmonth = 'January']"> <xsl:sort select="birthday" data-type="number"/> <xsl:if test="generate-id(.) = generate-id(key('by-jan', birthday)[1])"> <xsl:value-of select="birthday"/><xsl:text>
</xsl:text> <xsl:for-each select="key('by-jan', birthday)"> <xsl:sort select="name"/> <xsl:value-of select="name"/><xsl:text>
</xsl:text> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet> Regards, Mukul --- "m.vanrootseler" <m.vanrootseler@xxxxxxxxx> wrote: > Thanks for the link, Michael. I was already afraid > I'd have to use Muenchian > grouping, something that I've never done before. > > Mick > > > -----Oorspronkelijk bericht----- > Van: Michael Kay [mailto:mhk@xxxxxxxxx] > Verzonden: vrijdag 2 juli 2004 14:57 > Aan: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Onderwerp: RE: [xsl] sorting and grouping > > You'll find the answer at > http://www.jenitennison.com/xslt/grouping > > Michael Kay > > > -----Original Message----- > > From: m.vanrootseler > [mailto:m.vanrootseler@xxxxxxxxx] > > Sent: 02 July 2004 13:40 > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Subject: [xsl] sorting and grouping > > > > I've got a sorting problem. My XML is as follows: > > > > <person> > > <name>Kermit</name> > > <birthday>3</birthday> > > <birthmonth>January</birthmonth> > > </person> > > etc. > > > > XSLT: > > > > <xsl:for-each > select="person[birthmonth='January']"> > > <xsl:sort select="birthday" > data-type="number"/> > > <xsl:sort select="name"/> > > <xsl:value-of select="birthday"/> > > <xsl:text> - </xsl:text> > > <xsl:value-of select="name"/> > > <br/> > > </xsl:for-each> > > > > With the above code, each birthday number is > repeated. What I > > would like is > > to have the birthday number appear only once > followed by the > > names of people > > whose birthday that is. I suspect it can be done > by testing > > if the birthday > > value is the same as the preceding sibling, but I > can't get > > it right. Does > > anyone have any idea how to solve this? > > > > Mick __________________________________ Do you Yahoo!? Yahoo! Mail is new and improved - Check it out! http://promotions.yahoo.com/new_mail --+------------------------------------------------------------------ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx> --+--
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] sorting and grouping, Mukul Gandhi | Thread | Re: [xsl] creating a jsp file using, Robert Koberg |
RE: [xsl] group using element in tw, Pieter Reint Siegers | Date | RE: [xsl] Forwarding..., Pierre |
Month |