|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Adding hierarchy
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@xxxxxxxxxxxx> wrote in message
news:OFEB5B1B12.8FD1C074-ON85256DBD.00499DAA-85256DBE.000A4F05@xxxxxxxxxxxxxxxx
> 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
|
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








