Re: [xsl] xsl grouping problem

Subject: Re: [xsl] xsl grouping problem
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 9 Sep 2005 15:14:41 +0100
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="2.0">
 <xsl:output indent="yes"/>
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

<xsl:template match="*[line]">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:for-each-group select="*" group-adjacent="exists(self::line|self::line_first|self::line_last)">
<xsl:choose>
<xsl:when test="current-grouping-key()">
<stanza>
<xsl:apply-templates select="current-group()"/>
</stanza>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="current-group()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>




$ saxon8 stanza.xml  stanza.xsl
<?xml version="1.0" encoding="UTF-8"?>
<chapter>
   <para>This is a paragraph in the chapter</para>
   <stanza>
      <line_first>This is first line of a stanza of poetry</line_first>
      <line>This is line of poetry</line>
      <line>This is line of poetry</line>
      <line>This is line of poetry</line>
      <line_last>This is last line of a stanza of poetry</line_last>
   </stanza>
   <para>This is a paragraph in the chapter</para>
</chapter>

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread