Re: [xsl] node traversal

Subject: Re: [xsl] node traversal
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 24 Feb 2004 15:44:28 GMT
something like this (untested)


<xsl:template match="stem">
<table:table-cell>
<xsl:apply-templates mode="x"/>
</table:table-cell>
</xsl:template>

<!-- most stuff goes in a p -->
<xsl:template mode="x" match="*"/>
  <p>
 <xsl:copy-of select="."/>
</p>
</xsl:template>

<!-- most inline and text gets zapped (for now)
<xsl:template mode="x" match="inline|text()"/>

<!-- first inline or text in each consecutive sequence starts a p and
slurps up its following siblings-->

<xsl:template mode="x" match="node()
          [self::inline or self::text()]
          [not(preceding-sibling::node()[1][self::inline or self::text()])]
"/>
<p>
<xsl:apply-templates mode="y" select="."/>
</p>
</xsl:template>

<!-- mode y just copies the inlines in one at a time until teh next node
is not of that type in which case it stops -->

<xsltemplate match="inline|text()" mode="y">
<xsl:copy-of select="."/>
<xsl:apply-templates select=following-sibling::node()[1][self::inline or self::text()]"/>
</xsl:template>


-- 
http://www.dcarlisle.demon.co.uk/matthew

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

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


Current Thread