[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] howto add elements to sections of xml document


Subject: RE: [xsl] howto add elements to sections of xml document
From: "Andrew Welch" <AWelch@xxxxxxxxxxxxxxx>
Date: Mon, 8 Mar 2004 16:52:23 -0000

> I apologize if this is a double-post, I did not
> receive the message to my other address so I created
> another one.
> 
> I would like to tranform the following xml:
> <doc>
>    <section>
>       <title>XXXXXX</title>
>       <para>XXX XXX XXX</para>
> 
>       <title>YYYYYY</title>
>       <para>YYY YYY YYY</para>
>       <para>YYY YYY YYY</para>
>    </section>
> </doc>
> 
> to:
> 
> <doc>
>    <section>
> 
>       <sub-section>
>          <title>XXXXXX</title>
>          <para>XXX XXX XXX</para>
>       </sub-section>
> 
>       <sub-section>
>          <title>YYYYYY</title>
>          <para>YYY YYY YYY</para>
>          <para>YYY YYY YYY</para>
>        <sub-section>
> 
>    </section>
> </doc>

This is very similar to the other post about grouping today, you want
the identity transform with the following two templates:

<xsl:template match="section">
  <section>
    <xsl:apply-templates select="title"/>
  </section>  
</xsl:template>

<xsl:template match="title">
  <sub-section>
    <xsl:copy-of select="."/>
    <xsl:copy-of select="following-sibling::para[
                        generate-id(preceding-sibling::title[1]) 
                        = generate-id(current())]"/>
  </sub-section>
</xsl:template>
                        

cheers
andrew

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread