Subject: RE: [xsl] Group and compare data From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 6 Oct 2004 10:18:47 +0100 |
2.0 solution: <xsl:for-each-group select="*[starts-with(name(), 'aabnings')]" group-adjacent="."> <xsl:value-of select="concat( substring-after(name(current-group()[1]), 'aabningstider'), '-' substring-after(name(current-group()[last()]), 'aabningstider'), ' ', current-grouping-key())"/> </xsl:for-each-group> Needs a bit of refinement to avoid outputting Man-Man when the group size is 1. One of the best use cases for group-adjacent I have seen! In XSLT 1.0, you need to write a recursive template. It's tedious, so I'll leave it to others. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Verakso [mailto:verakso@xxxxxxxxx] > Sent: 06 October 2004 09:56 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Group and compare data > > I have som XML that looks like this: > > <Forhandler> > <Forhandler> > <navn>Dealer name</navn> > <email>mail@xxxxxxxxx</email> > <adresse>road 11</adresse> > <postnr>9999</postnr> > <by>city</by> > <telefon>4444444</telefon> > <aabningstiderMan>7:30 - 17:30</aabningstiderMan> > <aabningstiderTirs>7:30 - 17: 30</aabningstiderTirs> > <aabningstiderOns>7:30 - 17:30</aabningstiderOns> > <aabningstiderTors>7:30 - 17:30</aabningstiderTors> > <aabningstiderFre>7:30 - 17:30</aabningstiderFre> > <aabningstiderLoer>10:00 - 14:00</aabningstiderLoer> > <aabningstiderSoen>Efter aftale</aabningstiderSoen> > </Forhandler> > <Forhandler> > <navn>Another dealer</navn> > <email>another@xxxxxxxxx</email> > <adresse>another road</adresse> > <postnr>5555</postnr> > <by>big city</by> > <telefon>5555555</telefon> > <aabningstiderMan>07.30 - 17.30</aabningstiderMan> > <aabningstiderTirs>07.30 - 17.30</aabningstiderTirs> > <aabningstiderOns>07.30 - 17.30</aabningstiderOns> > <aabningstiderTors>07.30 - 17.30</aabningstiderTors> > <aabningstiderFre>07.30 - 16.00</aabningstiderFre> > <aabningstiderLoer>Lukket</aabningstiderLoer> > <aabningstiderSoen>Lukket</aabningstiderSoen> > </Forhandler> > </Forhandler> > > What I am trying to accomplish is to group the opening hours so they > look more nice. > > For the first dealer the result would be: > Mon-Fre 7:30-17:30 > Loer 10:00 - 14:00 > Soen Efter aftale > > For the second dealer the result would be: > Man-Tor 07.30 - 17.30 > Fre 07.30 - 16.00 > Loer-Soen Lukket > > I have tried som xsl-choose loop, but I went sour in the complexity of > variations, what if a dealer have diffent opening hours every day of > the week. > > So I thought, there must be at better approach on how to achieve this. > Is the use of keys a better approach, and if so, how? > > /Thomas
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Group and compare data, Verakso | Thread | Re: [xsl] Group and compare data, Verakso |
Re: [xsl] Re: [xslt transform & gro, Michael PG | Date | Re: [xsl] Re: [xslt transform & gro, Werner, Wolfgang |
Month |