xsl-list
[Top] [All Lists]

Re: Flattening parts of a document heirarchy

2003-10-31 07:19:30
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" /> 

of

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


 thanks,

        Dave.





Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/

-- 
Dr. David Holden. (Systems Developer)
Crystallography Journals Online: <http://journals.iucr.org>

Thanks in advance:-
Please avoid sending me Word or PowerPoint attachments.
See: <http://www.fsf.org/philosophy/no-word-attachments.html>

UK Privacy (R.I.P)  : http://www.stand.org.uk/commentary.php3
Public GPG key available on request.
-------------------------------------------------------------

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