[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
|