|
Subject: Re: [xsl] Using xsl:for-each-group to create nested sections From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Fri, 9 Jul 2004 22:14:33 +0100 |
Hi Renee,
> How can I get the stylesheet to wrap the nested section tags only
> around the content beginning with the first <h2> and not around the
> elements that come before the first <h2>?
Add a test to see whether the current node (which is the first node in
a particular group) is an <h2> element or not; if it is, then create
the <section> element; if it isn't, then don't:
<xsl:template match="doc">
<doc>
<xsl:for-each-group select="*" group-starting-with="h1">
<section>
<xsl:apply-templates select="current-group()[self::h1]" />
<xsl:for-each-group select="current-group() except ."
group-starting-with="h2">
<xsl:choose>
<xsl:when test="self::h2">
<section>
<xsl:apply-templates
select="current-group()[self::*]" />
</section>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates
select="current-group()[self::*]" />
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</section>
</xsl:for-each-group>
</doc>
</xsl:template>
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Using xsl:for-each-group to c, Swanjord, Renee | Thread | [xsl] finding position in list of s, John C Cartwright |
| Re: [xsl] Figuring out for-group-by, Jeni Tennison | Date | Re: [xsl] Muenchian grouping: help , Jeni Tennison |
| Month |