[xsl] Grouping is not working that great over here

Subject: [xsl] Grouping is not working that great over here
From: Matts Isuls <matts.isuls@xxxxxxxxxxx>
Date: Fri, 11 Apr 2003 08:31:54 +0300
Hi

Having problems grouping (first timer). Someone please help me out of this
darkness.

thanks,
Matts Isuls



I get this:

------
20030404::1
20030405::2
------
::0
20030101::2
::0
------
20030202::2
20030303::1
------
::0
::0
------
::0
::0

but would like to get this:
------
20030404::1
20030405::2
------
20030101::2
20030404::1
20030405::2
------
20030202::2
20030303::1
20030404::1
------
20030404::1
20030405::2
------
20030404::1

----------
---XSL----
----------

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<!-- leave payment nodes without date out -->
<xsl:key name="mkey" match="payments/payment[date]" use="date"/>

<xsl:template match="/">
        <xsl:apply-templates select="parcels" />
</xsl:template>
<xsl:template match="parcels">
        <xsl:apply-templates select="parcel" />
</xsl:template>

<xsl:template match="parcel">
   <br/>        ------
    <xsl:for-each select="payments/payment[count(.|key('mkey',date)[1])=1]">
      <xsl:sort select="date" />
      <xsl:variable name="date" select="date" />
      <xsl:variable name="tot"
         select="sum(../../payments/payment[date=$date]/amount)" />
                        <br/><xsl:value-of select="$date" />
                        ::<xsl:value-of select="$tot" />
    </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

----------
--XML-----
----------

<?xml version="1.0" encoding="UTF-8"?>
<!-- <date> in <payment> may be missing -->
<!-- normaly there is more data here but cut that out -->
<parcels>
        <parcel>
                <payments>
                        <payment>
                                <date>20030404</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030405</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030405</date>
                                <amount>1</amount>
                        </payment>
                </payments>
        </parcel>
        <parcel>
                <payments>
                        <payment>
                                <amount>449</amount>
                        </payment>
                        <payment>
                                <date>20030101</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030404</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030405</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030101</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030405</date>
                                <amount>1</amount>
                        </payment>
                </payments>
        </parcel>
        <parcel>
                <payments>
                        <payment>
                                <date>20030202</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030303</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030404</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030202</date>
                                <amount>1</amount>
                        </payment>
                </payments>
        </parcel>
        <parcel>
                <payments>
                        <payment>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030404</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030405</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030405</date>
                                <amount>1</amount>
                        </payment>
                </payments>
        </parcel>
        <parcel>
                <payments>
                        <payment>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <date>20030404</date>
                                <amount>1</amount>
                        </payment>
                        <payment>
                                <amount>1</amount>
                        </payment>
                </payments>
        </parcel>
</parcels> 

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread