Hi all. I am trying to parse an XML document and transform the result into a table that allows sorting. I have the following XML structure:
<CONSOLIDATED>
<RESULTSET>
<ROW>
<ACCOUNT>100027</ACCOUNT>
<SETTLEDATE>07/22/01</SETTLEDATE>
<BUYSELL>S</BUYSELL>
<TOTSHARES>2</TOTSHARES>
<NETAMT>49.0</NETAMT>
</ROW>
<ROW>
<ACCOUNT>100027</ACCOUNT>
<SETTLEDATE>07/24/02</SETTLEDATE>
<BUYSELL>B</BUYSELL>
<TOTSHARES>1</TOTSHARES>
<NETAMT>42.0</NETAMT>
</ROW>
<SUBTOTAL>
<INFO><![CDATA[Sub Total]]></INFO>
<SUBAMOUNT>7</SUBAMOUNT>
</SUBTOTAL>
</RESULTSET>
<RESULTSET>
<ROW>
<ACCOUNT>100032</ACCOUNT>
<SETTLEDATE>08/25/02</SETTLEDATE>
<BUYSELL>S</BUYSELL>
<TOTSHARES>1</TOTSHARES>
<NETAMT>58.0</NETAMT>
</ROW>
<ROW>
<ACCOUNT>100032</ACCOUNT>
<SETTLEDATE>09/11/02</SETTLEDATE>
<BUYSELL>B</BUYSELL>
<TOTSHARES>1</TOTSHARES>
<NETAMT>16.0</NETAMT>
</ROW>
<SUBTOTAL>
<INFO><![CDATA[Sub Total]]></INFO>
<SUBAMOUNT>32</SUBAMOUNT>
</SUBTOTAL>
</RESULTSET>
<TOTALS>
<INFO>Total</INFO>
<TOTALAMT>64</TOTALAMT>
</TOTALS>
</CONSOLIDATED>
Now I need to transform it to something like this.
Account | Settle Date | B/S | Shares | Amount
-----------------------------------------------
100027 07/22/01 S 1 49
100027 07/24/01 B 1 42
Subtotal 7
----------------------------------------------
100032 08/25/01 S 1 58
100032 09/11/01 B 1 16
Subtotal 42
---------------------------------------------
Total 49
I need to be able to click on Settle Date for example and sort in each category separately. I am very new to all this and so far had no success
. This is what I am doing:
<xsl:stylesheet version="1.0" xmlns:xsl="
<xsl:template match="CONSOLIDATED">
<TABLE>
<TR><TD ALIGN="CENTER">
<TABLE>
<TR CLASS="TableHeader">
<TD><A HREF="javascript:dataSort('ACCOUNT' ,'text' )">Account </A></TD>
<TD><A HREF="javascript:dataSort('SETTLEDATE' ,'text' )">S/D </A></TD>
<TD><A HREF="javascript:dataSort('BUYSELL','text' )">B/S </A></TD>
<TD><A HREF="javascript:dataSort('TOTSHARES','number')">Qty </A></TD>
<TD><A HREF="javascript:dataSort('NETAMT','number')">Net Amount</A></TD>
</TR>
<xsl:apply-templates select="RESULTSET">
<xsl:for-each select="ROW">
<xsl:sort select="ACCOUNT"/>
</xsl:for-each>
</xsl:apply-templates>
</TABLE>
</TD></TR>
</TABLE>
</xsl:template>
<xsl:template match="RESULTSET">
<xsl:for-each select="ROW">
<TR>
<TD><xsl:value-of select="ACCOUNT"/> </TD>
<TD><xsl:value-of select="SETTLEDATE"/></TD>
<TD><xsl:value-of select="BUYSELL"/> </TD>
<TD><xsl:value-of select="TOTSHARES"/> </TD>
<TD><xsl:value-of select="NETAMT"/> </TD>
</TR>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
where dataSort is a Java Script function. Can anyone tell me what I am doing wrong. Thanks!
<CONSOLIDATED>
<RESULTSET>
<ROW>
<ACCOUNT>100027</ACCOUNT>
<SETTLEDATE>07/22/01</SETTLEDATE>
<BUYSELL>S</BUYSELL>
<TOTSHARES>2</TOTSHARES>
<NETAMT>49.0</NETAMT>
</ROW>
<ROW>
<ACCOUNT>100027</ACCOUNT>
<SETTLEDATE>07/24/02</SETTLEDATE>
<BUYSELL>B</BUYSELL>
<TOTSHARES>1</TOTSHARES>
<NETAMT>42.0</NETAMT>
</ROW>
<SUBTOTAL>
<INFO><![CDATA[Sub Total]]></INFO>
<SUBAMOUNT>7</SUBAMOUNT>
</SUBTOTAL>
</RESULTSET>
<RESULTSET>
<ROW>
<ACCOUNT>100032</ACCOUNT>
<SETTLEDATE>08/25/02</SETTLEDATE>
<BUYSELL>S</BUYSELL>
<TOTSHARES>1</TOTSHARES>
<NETAMT>58.0</NETAMT>
</ROW>
<ROW>
<ACCOUNT>100032</ACCOUNT>
<SETTLEDATE>09/11/02</SETTLEDATE>
<BUYSELL>B</BUYSELL>
<TOTSHARES>1</TOTSHARES>
<NETAMT>16.0</NETAMT>
</ROW>
<SUBTOTAL>
<INFO><![CDATA[Sub Total]]></INFO>
<SUBAMOUNT>32</SUBAMOUNT>
</SUBTOTAL>
</RESULTSET>
<TOTALS>
<INFO>Total</INFO>
<TOTALAMT>64</TOTALAMT>
</TOTALS>
</CONSOLIDATED>
Now I need to transform it to something like this.
Account | Settle Date | B/S | Shares | Amount
-----------------------------------------------
100027 07/22/01 S 1 49
100027 07/24/01 B 1 42
Subtotal 7
----------------------------------------------
100032 08/25/01 S 1 58
100032 09/11/01 B 1 16
Subtotal 42
---------------------------------------------
Total 49
I need to be able to click on Settle Date for example and sort in each category separately. I am very new to all this and so far had no success
<xsl:stylesheet version="1.0" xmlns:xsl="
<xsl:template match="CONSOLIDATED">
<TABLE>
<TR><TD ALIGN="CENTER">
<TABLE>
<TR CLASS="TableHeader">
<TD><A HREF="javascript:dataSort('ACCOUNT' ,'text' )">Account </A></TD>
<TD><A HREF="javascript:dataSort('SETTLEDATE' ,'text' )">S/D </A></TD>
<TD><A HREF="javascript:dataSort('BUYSELL','text' )">B/S </A></TD>
<TD><A HREF="javascript:dataSort('TOTSHARES','number')">Qty </A></TD>
<TD><A HREF="javascript:dataSort('NETAMT','number')">Net Amount</A></TD>
</TR>
<xsl:apply-templates select="RESULTSET">
<xsl:for-each select="ROW">
<xsl:sort select="ACCOUNT"/>
</xsl:for-each>
</xsl:apply-templates>
</TABLE>
</TD></TR>
</TABLE>
</xsl:template>
<xsl:template match="RESULTSET">
<xsl:for-each select="ROW">
<TR>
<TD><xsl:value-of select="ACCOUNT"/> </TD>
<TD><xsl:value-of select="SETTLEDATE"/></TD>
<TD><xsl:value-of select="BUYSELL"/> </TD>
<TD><xsl:value-of select="TOTSHARES"/> </TD>
<TD><xsl:value-of select="NETAMT"/> </TD>
</TR>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
where dataSort is a Java Script function. Can anyone tell me what I am doing wrong. Thanks!