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

positional grouping xslt2

Subject: positional grouping xslt2
From: David.Pawson@xxxxxxxxxxx
Date: Tue, 9 Mar 2004 14:55:52 -0000
positional grouping
I'm trying .. and failing, to use the xslt 2 grouping ideas
picking on a starting element and grouping using the group-starting-with
attribute.

The w3c examples are too simplistic to work here.




xml file,

<article>
   <head1> An Example Twiki Document</head1>
   <hr/>a para to show content in this level 1
<head1> This is a level 1 heading
A filler paragraph</head1>
   <head2> This is a level 2 heading
A filler paragraph</head2>
   <head3> And a level 3 heading. Never more than two linefeeds between
content. Othewise it shows up as a paragraph!</head3>
   <p>A straightforward paragraph requires no special formatting.  It can
include <b>bold</b> text, <i>italic</i> text and <literal>monotype</literal>
text.  Note that
bold and italic will be converted to docbook emphasis markup.</p>
   <p>Note that the star and underscore must be tight up to the marked up
text,
as per the wiki requirment</p>
   <head2> Other markup.</head2>
   <p>For lists, use </p>
   <bull1> Three spaces (not a tab) then the star</bull1>
   <bull1> Other List items then follow</bull1>
   <bull1> Third list item</bull1>
   <p>For ordered (itemised) lists,</p>
   <litem> ITem one</litem>
   <litem> item two</litem>
   <litem> and so on</litem>
   <litem>Note also that you only need add the number 1, not increment it
each time.</litem>
   <litem>And that if you insert spaces after the number, they will be
copied over.</litem>
   <p>Display lists, or definition lists, contain a term and its
explanation.  Three spaces followed by the dollar symbol prefix the
term, the colon terminates the term and starts the definition. The
newline terminates the definition</p>
</article>


etc.
  I.e. flat, no structure. 
I want to use the positional grouping idea from xslt 2 to group under
section wrappers,
With a root template as below, I'm stuck figuring out where the nesting is
needed.
It seems like a pull only solution is needed, since apply templates will
duplicate
the output.
   I'm currently getting the head1 stuff to work,
but failing with the second level.
Since the bull1 - wanted as docbook itemizedlist - also needs this
sort of grouping treatment, I'm looking for a structure which works
with this form of input.
I've added some debug to find out if its working.... and its not.

any help appreciated.

the required output is a nested suite of section tags wrapping
what are now sibling head1 head2 head3 elements.
bull1 lists should fit in with the current hierarchy.


stylesheet.

<xsl:template match="/">
  <xsl:for-each-group select="article/*" group-starting-with="head1">
    <section>
      <head><xsl:value-of select="self::head1"/></head>

 <xsl:for-each-group select="current-group()" group-starting-with="head2">
    <section2>
      <head2><xsl:value-of select="self::head2"/></head2>
Debug: head2 children  are:
      <xsl:for-each select="current-group()">
        <xsl:value-of select="name()"/> <xsl:text> </xsl:text>
      </xsl:for-each>
    </section2>
  </xsl:for-each-group>
    </section>
  </xsl:for-each-group>

     <xsl:for-each-group select="*" group-starting-with="bull1">
        <itemizedlist>
          <xsl:for-each select="current-group()">
            <listitem>
              <xsl:apply-templates  mode="struct"/>
            </listitem>
          </xsl:for-each>
        </itemizedlist>
      </xsl:for-each-group>
      </article>
  </xsl:template>

<xsl:template match="p" mode="struct">
  <para><xsl:apply-templates  mode="struct"/></para>
</xsl:template>

Other inline markup is similarly moded.




Regards DaveP.

**** snip here *****

- 
DISCLAIMER: 

NOTICE: The information contained in this email and any attachments is 
confidential and may be privileged. If you are not the intended 
recipient you should not use, disclose, distribute or copy any of the 
content of it or of any attachment; you are requested to notify the 
sender immediately of your receipt of the email and then to delete it 
and any attachments from your system. 

RNIB endeavours to ensure that emails and any attachments generated by 
its staff are free from viruses or other contaminants. However, it 
cannot accept any responsibility for any  such which are transmitted.
We therefore recommend you scan all attachments. 

Please note that the statements and views expressed in this email and 
any attachments are those of the author and do not necessarily represent 
those of RNIB. 

RNIB Registered Charity Number: 226227 

Website: http://www.rnib.org.uk 

 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.