xsl-list
[Top] [All Lists]

Re: Muenchian method on nodes with two or more items for indexing

2002-09-23 19:40:24
Thanks J.

This worked great! Just a few corrections for reference on the list (and for my own future purposes :} ). And sorry about not trimming down the content before resending on the previous message.

Thanks again. Saved me from a lot more frustration.

Larry

Corrections to below:

<xsl:for-each select="//LexicalDatabase//index[generate-id(.)=
            generate-id(key('entries-by-index',.))]">
                                               ^

<xsl:variable name="entry"
            select="(ancestor::*[parent::LexicalDatabase])[1]"/>
                               ^


From: "J.Pietschmann" <j3322ptm(_at_)yahoo(_dot_)de>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Muenchian method on nodes with two or more items for indexing
Date: Fri, 20 Sep 2002 21:46:11 +0200

larry_hayashi(_at_)hotmail(_dot_)com wrote:
  <xsl:key name="entries-by-index" match="//LexicalDatabase/*"
use=".//index"/>
       ^^^
Bad idea. I think you actually want to group the "index" elements
by their content:

   <xsl:key name="entries-by-index" match="index" use="."/>
   <xsl:template match="/">
     <xsl:for-each select="//LexicalDatabase//index[generate-id(.)=
            generate-id(key('entries-by-index',index))]">
       <xsl:sort select="." order="ascending" />
       <xsl:variable name="entry"
            select="(ancestor[parent::LexicalDatabase])[1]"/>
       <IndexItem value="{.}">
         <xsl:for-each select="key('entries-by-index', .)">
           <entry base="{$entry/base}"/>
         </xsl:for-each>
       </IndexItem>
     </xsl:for-each>
   </xsl:template>



_________________________________________________________________
MSN Photos is the easiest way to share and print your photos: http://photos.msn.com/support/worldwide.aspx


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



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