Subject: Re: [xsl] Select distinct elements From: Philip.Strube@xxxxxxxxxxxxxxxxx (Philip Strube) Date: Thu, 22 Feb 2001 14:34:20 +0100 |
Hi Jakub, > I need to select events for text output, but only once each. > So the output should look like this: > > 11:00-14:00: Event 1 > 12:00-12:15: Event 2 > 15:00-15:30: Event 3 > > I don't know, how to select each event original, when the same event is in > input more times. This is a grouping problem. Really classic question. Who could explain it better than Jeni Tennison, I wonder why she didn't do already... Solution: <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:key name="event" match="/day/hour/event" use="name"/> <xsl:template match="/"> <output> <xsl:apply-templates /> </output> </xsl:template> <xsl:template match="day"> <xsl:for-each select="hour/event[generate-id() = generate-id(key('event',name)[1])]"> <xsl:sort select="name"/> <xsl:text> </xsl:text> <xsl:value-of select="concat(timeFrom,'-',timeTo,': ',name)"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> Explanation: see http://www.jenitennison.com/xslt/grouping/muenchian.html Gruß, Philip P.S. some other solution with saxon:distinct? XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Select distinct elements, Jakub Maly | Thread | [xsl] Test for PCDATA, Rush, Marc |
Re: [xsl] 2.1 Must Allow Matching o, Dave Hartnoll | Date | RE: [xsl] string question, David Santamauro |
Month |