This transformation:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="kLGroup" match="lineGroup"
use="generate-id(preceding-sibling::blankLine[1])"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="blankLine">
<lineGroup type="stanza">
<xsl:copy-of select="key('kLGroup', generate-id())"/>
</lineGroup>
</xsl:template>
<xsl:template match="lineGroup"/>
</xsl:stylesheet>
when applied on this source.xml:
<text>
<blankLine/>
<lineGroup>
<line> </line>
<line> </line>
</lineGroup>
<lineGroup>
<line> </line>
<line> </line>
<lineGroup>
<line> </line>
<line> </line>
</lineGroup>
<line> </line>
</lineGroup>
<p/>
<blankLine/>
<lineGroup>
<line> </line>
<line> </line>
</lineGroup>
<lineGroup>
<line> </line>
<line> </line>
<lineGroup>
<line> </line>
<line> </line>
</lineGroup>
<line> </line>
</lineGroup>
<p/>
<blankLine/>
<lineGroup>
<line> </line>
<line> </line>
</lineGroup>
<lineGroup>
<line> </line>
<line> </line>
<lineGroup>
<line> </line>
<line> </line>
</lineGroup>
<line> </line>
</lineGroup>
<p/>
</text>
produces the wanted result:
<text>
<lineGroup type="stanza">
<lineGroup>
<line/>
<line/>
</lineGroup>
<lineGroup>
<line/>
<line/>
<lineGroup>
<line/>
<line/>
</lineGroup>
<line/>
</lineGroup>
</lineGroup>
<p/>
<lineGroup type="stanza">
<lineGroup>
<line/>
<line/>
</lineGroup>
<lineGroup>
<line/>
<line/>
<lineGroup>
<line/>
<line/>
</lineGroup>
<line/>
</lineGroup>
</lineGroup>
<p/>
<lineGroup type="stanza">
<lineGroup>
<line/>
<line/>
</lineGroup>
<lineGroup>
<line/>
<line/>
<lineGroup>
<line/>
<line/>
</lineGroup>
<line/>
</lineGroup>
</lineGroup>
<p/>
</text>
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
<Jim_Albright(_at_)wycliffe(_dot_)org> wrote in message
news:OFEB5B1B12(_dot_)8FD1C074-ON85256DBD(_dot_)00499DAA-85256DBE(_dot_)000A4F05(_at_)notes(_dot_)sil(_dot_)org(_dot_)(_dot_)(_dot_)
Thank you for help in the past. Next question.
Starting with this piece, I want to add a wrapper around a whole set of
lineGroup elements
<blankLIne>
<lineGroup>
<line></line>
<line></line>
</lineGroup>
<lineGroup>
<line></line>
<line></line>
<lineGroup>
<line></line>
<line></line>
</lineGroup>
<line></line>
</lineGroup>
<p>.......or any non lineGroup element .....
should change to
<lineGroup type="stanza">
<lineGroup>
<line></line>
<line></line>
</lineGroup>
<lineGroup>
<line></line>
<line></line>
<lineGroup>
<line></line>
<line></line>
</lineGroup>
<line></line>
</lineGroup>
</lineGroup>
<p>.......or any non lineGroup element .....
So a blankLine as preceding-sibling to lineGroup is the trigger to then
process all following-sibling lineGroups.
A 2.0 solution is welcome if needed.
Jim Albright
704 843-0582
Wycliffe Bible Translators
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list