xsl-list
[Top] [All Lists]

Re: [xsl] Re: Sorting on two levels

2015-04-15 09:35:29
I did try  <xsl:apply-templates select="current-group()">, thinking it would 
just go through and apply the existing indexterm, primary, secondary templates 
-- but I got the entire group in a chunk, it didn't seem to apply templates to 
each element  individually.  I'll go back and look, maybe I did something wrong 
there.  I wasn't using mode, maybe that was the problem.

<xsl:for-each select="current-group()"> makes sense, will give that a try.

Last question: if I want to do something at the end of each group, I'd put that 
instruction right before the </xsl:for-each-group>, correct?


-----Original Message-----
From: Martin Honnen martin(_dot_)honnen(_at_)gmx(_dot_)de 
[mailto:xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com] 
Sent: Wednesday, April 15, 2015 10:04 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Re: Sorting on two levels

Michele R Combs mrrothen(_at_)syr(_dot_)edu wrote:
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.


                             <a>

                                <xsl:attribute name="href">

                                     <xsl:value-of 
select="current-group()/@id"/>

                                </xsl:attribute>

                                <xsl:value-of select="current-group()/@id" 
separator=", "/>


If you want to map each item in a group to an HTML "a" element then use

   <xsl:for-each select="current-group()">
     <a href="{@id}">
       <!-- not sure what you want to output for the link -->
       <xsl:value-of select="@id"/>
     </a>
   </xsl:for-each>

or use

   <xsl:apply-templates select="current-group()" mode="link"/>

and write a template

   <xsl:template match="indexterm" mode="link">
     <a href="{@id}">
       <!-- not sure what you want to output for the link -->
       <xsl:value-of select="@id"/>
     </a>
    </xsl:template>

--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

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