Re: [xsl] Flattening parts of a document heirarchy

Subject: Re: [xsl] Flattening parts of a document heirarchy
From: David Holden <dh@xxxxxxxx>
Date: Fri, 31 Oct 2003 14:19:30 +0000
On Friday 31 Oct 2003 12:03 pm, Jeni Tennison wrote:

Hi Jeni, thanks for taking the time to reply.

> Hi Dave,
> If you're happy using SAX to do it, I think you should do so. This
> kind of transformation is really suited to a streaming approach, in
> which you go through the elements as they appear and insert start and
> end tags as appropriate.

Yes, I think I will stick to SAX for this part.

Its taken me about an hour to figure how your solution works (but it was good 
learning material for a newbie!).

> <xsl:template match="node()" mode="copy">
>   <xsl:copy-of select="." />
>   <xsl:apply-templates select="following-sibling::node()[1]"
>                        mode="copy" />
> </xsl:template>
> Processing of <sec> elements in copy mode is to do nothing:
> <xsl:template match="sec" mode="copy" />

Am I write in thinking that  the above match="sec" takes priority over the 
above  match="node()" and therefore ends the "copy-of" recursion, therefore 
sending you back to the 

>   <xsl:apply-templates select="following-sibling::sec[1]"
>                        mode="flatten" /> 


> <xsl:template match="node()" mode="flatten">
>   <section level="{count(ancestor::sec)}">
>     <xsl:apply-templates select="." mode="copy" />
>   </section>
>   <xsl:apply-templates select="following-sibling::sec[1]"
>                        mode="flatten" />
> </xsl:template>



> Cheers,
> Jeni
> ---
> Jeni Tennison

Dr. David Holden. (Systems Developer)
Crystallography Journals Online: <>

Thanks in advance:-
Please avoid sending me Word or PowerPoint attachments.
See: <>

UK Privacy (R.I.P)  :
Public GPG key available on request.

 XSL-List info and archive:

Current Thread