[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Adding hierarchy

Subject: Re: Adding hierarchy
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Mon, 13 Oct 2003 06:31:14 +0200
line 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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.