|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Using xsl:for-each-group to create nested sections
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/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








