xsl-list
[Top] [All Lists]

Re: how to sort after applying generate-id()?

2003-10-14 18:23:55
I feel, it should be possible with xsl:sort .. Its
difficult to understand where xsl:for-each starts in
the XSL, and for what purpose you are using
generate-id .. It *seems you want to do Muenchian
grouping *.. 

If you can clarify the problem more -- 
the XML structure(at least provide 2,3 more <ENTITY>
tags), 

complete the missing parts of XSL(I cannot see the
attribute TOTAL_FUND_VALUE_NET, which you have
mentioned in XSL), 

how you want the grouping to be done, and 

the desired output .. somebody can give suggestion..

Regards,
Mukul

--- "Lee, Insoo" <Insoo(_dot_)Lee(_at_)gs(_dot_)com> wrote:

Hello - 
 I'm having trouble sorting the item grouped by
generate-id()...


I have xml that looks like

<REPORT>
 <ENTITY>
       <FUND_CURRENCY_GROUP CURRENCY="GBP">
               <FUND_CODE_GROUP TA_FUND_CODE="G631">
                       <FUND_ROW>
                                <TRADE_TYPE>PUR</TRADE_TYPE> 
                        </FUND_ROW>
                </FUND_CODE_GROUP>
        </FUND_CURRENCY_GROUP>
        <FUND_CURRENCY_GROUP CURRENCY="USD">
               <FUND_CODE_GROUP TA_FUND_CODE="U631">
                       <FUND_ROW>
                                <TRADE_TYPE>PUR</TRADE_TYPE> 
                        </FUND_ROW>
                </FUND_CODE_GROUP>
        </FUND_CURRENCY_GROUP>
 </ENTITY>
  
  and many more ENTITY like this
  </REPORT>


XSL looks like follwing:

              <xsl:variable name="currencies"
select="//FUND_CURRENCY_GROUP"/>

                        <xsl:if
test="generate-id(.)=
                            generate-id(
$currencies[ @CURRENCY =
                                       
current()/@CURRENCY ] )">


                        <tr>
                            <td colspan="4"><b>Grand
Total Purchases
(<xsl:value-of select="@CURRENCY"/>):</b></td>
                            <td align="right"
width="14%"> </td>
                            <td align="right"
width="14%"> </td>
                         </tr>

                        <tr>
                            <td colspan="4"><b>Grand
Total Redemptions
(<xsl:value-of select="@CURRENCY"/>):</b></td>
                            <td align="right"
width="14%"> </td>
                            <td align="right"
width="14%"> </td>
                        </tr>

                        <tr>
                            <td colspan="4"><b>Grand
Total Net Change
(<xsl:value-of select="@CURRENCY"/>):</b></td>
                            <td align="right"
width="14%"> </td>
                            <td align="right"
width="14%"> </td>
                            <!-- I would do
something like this, if it works
<td align="right" width="14%"><b><u><xsl:value-of
select="format-number(sum(

$currencies[(_at_)CURRENCY=current()/@CURRENCY]/FUND_CODE_GROUP/@TOTAL_FUND_VALUE
_NET ), '#,###,###,##0.00')"/></u></b></td> -->
                        </tr>
                            </xsl:if>
                        </xsl:for-each>


      This would return me cross-entities grouped by
currency

      Grand Total Purchases (USD)
      Grand Total Purchases (GBP)
      Grand Total Purchases (EUR)

      This is good, but is there anyway to combine
sorting with this
generate-id() so that it appears alphabetically?

      Grand Total Purchases (EUR)
      Grand Total Purchases (GBP)
      Grand Total Purchases (USD)

 Thanks
 IL

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



__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com

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



<Prev in Thread] Current Thread [Next in Thread>