This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Sorting in descending order on the sum of acalculation
- From: Joshua dot Kuswadi at BTFinancialgroup dot com
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 29 Nov 2001 16:45:55 +1100
- Subject: RE: [xsl] Sorting in descending order on the sum of acalculation
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi there,
> <xsl:for-each select="//referers/referer">
> <xsl:sort select="@page" order="ascending"/>
<snip/>
> </xsl:for-each>
The above xsl:sort is sorting on the page attribute in ascending alphabetical, which results in the output you are getting.
Looks like you will need to group by @page to get all the distinct pages and then sort on the calculation of the number of hits. The below is untested and untried.
<!-- Select all referer elements -->
<xsl:variable name="refererPages" select="//referers/referer" />
<!-- Select the distinct referer elements -->
<xsl:variable name="distinctRefererPages" select="$refererPages[@page != preceding::referer/@page]" />
<xsl:for-each select="$distinctRefererPages">
<!-- Sort by sum of the hits attribute of all referer elements where the page attribute is the same as that in the $distinctRefererPages -->
<xsl:sort select="sum(//referers/referer[@page = current()/@page]/@hits)" order="descending" />
</xsl:for-each>
HTH,
Joshua
------------------------------------------------------------------------------
This message and any attachment is confidential and may be privileged or otherwise protected from disclosure. If you have received it by mistake please let us know by reply and then delete it from your system; you should not copy the message or disclose its contents to anyone.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list