Subject: [xsl] Re: Sorting on two levels From: "Michele R Combs mrrothen@xxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 15 Apr 2015 13:50:39 -0000 |
The suggestion offered yesterday works great as far as the sorting, but I need to do certain things to each item in a group as it's output, such as wrapping each ID in an <a> element. What I tried is shown below, but it results in @href containing *all* the ids for the group. How do I process each item in a group separately? Do I need to at some point just do <xsl:apply-templates select=" current-group()"> and then rely on templates for primary, secondary, etc.? I did try that but couldn't seem to get it to work -- either I got no output, or I got the entire group in a chunk. <xsl:template name="create-index"> <ul> <xsl:for-each-group select="//indexterm" group-by="primary"> <xsl:sort select="current-grouping-key()"/> <li> <xsl:value-of select="current-grouping-key(), if(not(current-group()/secondary)) then current-group()/@id else ()" separator=", "/> <xsl:if test="current-group()/secondary"> <ul> <xsl:for-each-group select="current-group()" group-by="secondary"> <xsl:sort select="current-grouping-key()"/> <li> <xsl:value-of select="current-grouping-key()"/> <a> <xsl:attribute name="href"> <xsl:value-of select="current-group()/@id"/> </xsl:attribute> <xsl:value-of select="current-group()/@id" separator=", "/> </a> </li> </xsl:for-each-group> </ul> </xsl:if> </li> </xsl:for-each-group> </ul> </xsl:template>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Using doc( ) to get a sec, Eliot Kimber ekimber | Thread | Re: [xsl] Re: Sorting on two levels, Martin Honnen martin |
Re: [xsl] Using doc( ) to get a sec, Imsieke, Gerrit, le- | Date | Re: [xsl] Re: Sorting on two levels, Martin Honnen martin |
Month |