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">
<xsl:apply-templates mode="x"/>

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

<!-- 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()])]
<xsl:apply-templates mode="y" select="."/>

<!-- 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()]"/>


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:

 XSL-List info and archive:

Current Thread