RE: [xsl] XSLT2/Saxon: How to group by distinct element values?

Subject: RE: [xsl] XSLT2/Saxon: How to group by distinct element values?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 17 Oct 2008 11:30:36 +0100
<xsl:template match="root">
  <root>
    <xsl:for-each-group select="data" group-by="group1">
      <group1 name="{current-grouping-key()}">
        <xsl:for-each-group select="current-group()" group-by="group2">
          <group2 name="{current-grouping-key()}">
            <xsl:for-each select="current-group()">
              <group3 name="{group3}"/>
            </
          </
        </
      </
    </
  </
</

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: "Robert Svsemann" [mailto:rsoese@xxxxxx]
> Sent: 17 October 2008 11:10
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] XSLT2/Saxon: How to group by distinct element values?
>
> Hi, even after reading for one hour about grouping in XSLT2,
> I could not find out how to transform my Source XML to my Result XML.
> Can anybody help me?
>
> Source XML
> ----------
> <?xml version="1.0" encoding="UTF-8"?>
> <root>
>   <data>
>     <group1>MERCEDES</group1>
>     <group2>CLK</group2>
>     <group3>CLK 320 CDI Coupe</group3>
>   </data>
>   <data>
>     <group1>MERCEDES</group1>
>     <group2>CLK</group2>
>     <group3>CLK 320 CDI Sedan</group3>
>   </data>
>   <data>
>     <group1>MERCEDES</group1>
>     <group2>SLK</group2f>
>     <group3>SLK Limousine</group3>
>   </data>
>   <data>
>     <group1>AUDI</group1>
>     <group2>A2</group2>
>     <group3>A2 Coupe</group3>
>   </data>
> </root>
>
> Result XML
> ----------
> <?xml version="1.0" encoding="UTF-8"?>
> <root>
>   <group1 name="MERCEDES">
>     <group2 name="CLK">
>       <group3 name="CLK 320 CDI Coupe"/>
>       <group3 name="CLK 320 CDI Sedan"/>
>     </leve2>
>     <group2 name="SLK">
>       <group3 name="SLK Limousine"/>
>     </group>
>   </group1>
>   <group1 name="AUDI">
>     <group2 name="A2">
>       <group3 name="A2 Coupe" />
>     </group2>
>   </group1>
> </root>
>
> Thanks in advance
> --
> Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
> Browser-Versionen downloaden: http://www.gmx.net/de/go/browser

Current Thread