Comment grouper et additionner des valeurs dans XSLT

Pour chaque "agence" nœud j'ai besoin de trouver la "stmt" les éléments qui ont le même key1, key2, clé3 des valeurs et de la sortie d'un "stmt" nœud avec la "comm" et "prem" valeurs additionnées. Pour tout "stmt" éléments à l'intérieur de cette "agence" qui ne correspondent à aucune autre "stmt" des éléments basés sur key1, key2 et key3 j'ai besoin de générer leur est. Ainsi, après la transformation de la première "agence" nœud de n'avoir que deux "stmt" nœuds (un résumé) et la seconde "l'agence" nœud serait passée comme est parce que les touches ne correspondent pas. XSLT 1.0 ou 2.0 solutions sont ok...si ma feuille de style est actuellement 1.0. Notez que l'agence pouvait avoir n'importe quel nombre de "stmt" les éléments qui ont des clés qui doivent être regroupés et synthétisés et tout nombre qui n'en ont pas.

<statement>
<agency>
    <stmt>
        <key1>1234</key1>
        <key2>ABC</key2>
        <key3>15.000</key3>
        <comm>75.00</comm>
        <prem>100.00</prem>
    </stmt>
    <stmt>
        <key1>1234</key1>
        <key2>ABC</key2>
        <key3>15.000</key3>
        <comm>25.00</comm>
        <prem>200.00</prem>
    </stmt>
    <stmt>
        <key1>1234</key1>
        <key2>ABC</key2>
        <key3>17.50</key3>
        <comm>25.00</comm>
        <prem>100.00</prem>
    </stmt>
</agency>
<agency>
    <stmt>
        <key1>5678</key1>
        <key2>DEF</key2>
        <key3>15.000</key3>
        <comm>10.00</comm>
        <prem>20.00</prem>
    </stmt>
    <stmt>
        <key1>5678</key1>
        <key2>DEF</key2>
        <key3>17.000</key3>
        <comm>15.00</comm>
        <prem>12.00</prem>
    </stmt>
</agency>

source d'informationauteur johkar