Subject: [xsl] Re: Sorting Question: Muenchian method? Substring in Key? From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Fri, 27 Sep 2002 10:40:52 -0700 (PDT) |
--- Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote: > Hi Mark, > > Yes, the use of the Muenchian method to solve your problem is very > straightforward: > > source xml (the one provided by you, but reshuffled): > --------------------------------------------------- > <topics> > <topic>Chimpanzee</topic> > <topic>Aardvark</topic> > <topic>Beetle, Smaller European Elm Bark</topic> > <topic>Anteater</topic> > <topic>Beetle, American Burying</topic> > </topics> > > stylesheet: > ---------- > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:output method="text"/> > > <xsl:variable name="NL" select="' '"/> > > <xsl:key name="kTopic" match="topic" use="substring(.,1,1)"/> > > <xsl:template match="/"> > <xsl:for-each select="/*/topic > [ > generate-id() > = > generate-id(key('kTopic', > substring(.,1,1) > )[1] > ) > ]"> > <xsl:sort select="substring(.,1,1)"/> > > <xsl:value-of select="concat($NL, substring(.,1,1))"/> > > <xsl:for-each select="key('kTopic',substring(.,1,1))"> > <xsl:value-of select="concat($NL, .)"/> > </xsl:for-each> > <xsl:value-of select="$NL"/> > </xsl:for-each> > </xsl:template> > </xsl:stylesheet> > > Result: > ------- > > A > Aardvark > Anteater > > B > Beetle, Smaller European Elm Bark > Beetle, American Burying > > C > Chimpanzee > > Just a minor addition: as they are at the moment, the results are not sorted, but only grouped by their first letter. Therefore, in the above code > <xsl:for-each select="key('kTopic',substring(.,1,1))"> > <xsl:value-of select="concat($NL, .)"/> > </xsl:for-each> should actually be: <xsl:for-each select="key('kTopic',substring(.,1,1))"> <xsl:sort select="."/> <xsl:value-of select="concat($NL, .)"/> </xsl:for-each> ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL __________________________________________________ Do you Yahoo!? New DSL Internet Access from SBC & Yahoo! http://sbc.yahoo.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: Sorting Question: Muenchi, Dimitre Novatchev | Thread | [xsl] displaying values from <xsp:l, Matt MacDougall |
RE: [xsl] Sorting Question: Muenchi, Robert Koberg | Date | [xsl] displaying values from <xsp:l, Matt MacDougall |
Month |