Re: [xsl] grouping nodes inside a new parent node

Subject: Re: [xsl] grouping nodes inside a new parent node
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 25 Feb 2005 12:27:14 GMT
It depends a bit how general you want it to be but basically you want to
have empty templates for all the elements that you want to group so the
"identity" template doesn't copy them to the wrong place, then have a
template for the first element in the group that copies all the group to
where you want.

so if the rule is that the special nodes are para children of news-item
that don't follow a table then you want

<xsl:template match="news-item/para[not(preceding-sibling::table)]"/>

then 

<xsl:template match="news-item/para[1]" priority="10">
 <content>
  <xsl:copy-of
 select=".|following-sibling::*para[not(preceding-sibling::table)]"/>
</content>

as with any grouping problem you can probably speed it up with keys,
although in this case I'd guess your news-items don't have hundreds of
children so it might not make so much difference.

David


________________________________________________________________________
This e-mail has been scanned for all viruses by Star. 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
________________________________________________________________________

Current Thread