<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
________________________________________________________________________
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--