XSLT simulation of two column Group By
In my transformation using 1.0, I am getting the appropirate output with one exception - I need to simulate a Group By on two coulmns (attributes) of my output. Currently my output is giving me 30 child elements, and it should group down to 2 child elements - To_Currency and From_Currency. How do I simulate this in XSLT? Following is my code:
<xsl:element name="MAX_DATES">
<xsl:for-each select="FOREX[@FROM_CURRENCY='USD'] | FOREX[@FROM_CURRENCY='USD DOL']">
<xsl:variable name="strPriceDate" select="normalize-space(@PRICE_DATE)"/>
<xsl:variable name="strToCurrency" select="normalize-space(@TO_CURRENCY)"/>
<xsl:variable name="strFromCurrency" select="normalize-space(@FROM_CURRENCY)"/>
<xsl:variable name="strMaxDate">
<xsl:for-each select="//FOREX[@FROM_CURRENCY='USD'] | //FOREX[@FROM_CURRENCY='USD DOL']">
<xsl:sort select="@PRICE_DATE" data-type="text" order="descending" />
<xsl:if test="position()=1">
<xsl:value-of select="@PRICE_DATE"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:element name="MAX_DATE">
<xsl:attribute name="FROM_CURRENCY">
<xsl:value-of select="@FROM_CURRENCY" />
</xsl:attribute>
<xsl:attribute name="TO_CURRENCY">
<xsl:value-of select="@TO_CURRENCY" />
</xsl:attribute>
<xsl:attribute name="MAX_PRICE_DATE">
<xsl:value-of select="$strMaxDate" />
</xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:element>
|