xsl-list
[Top] [All Lists]

Re: [xsl] distinct-values() optimization, sorting by frequency

2008-02-08 07:41:36
On 08/02/2008, James Cummings <cummings(_dot_)james(_at_)gmail(_dot_)com> wrote:

instead of:

 <xsl:variable name="distinct-persNames"
select="distinct-values($norm-persNames)"/>

and


    <xsl:for-each select="$distinct-persNames">
      <xsl:sort select="count($persNames[normalize-space(lower-case(.))
        = .])"/>
<!-- I think it is this sort statement which slows things down, since
I have to repeat it twice. -->
      <xsl:variable name="current-name" select="."/>
      <xsl:variable name="count-distinct-current-name"
        select="count($persNames[normalize-space(lower-case(.))
        = $current-name])"/>
      <item><xsl:value-of select="concat($count-distinct-current-name,
          '  --  ', $current-name)"/> </item>
    </xsl:for-each>
  </list>

do:

<xsl:for-each-group select="$norm-persNames"  group-by=".">
  <xsl:sort select="count(current-group())" data-type="number"
order="descending"/>
  <item>
    <xsl:value-of select="concat($current-grouping-key(),
           '  --  ', count(current-group()))"/>
...


cheers
-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--