[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: two-level grouping xslt 2.0
Terry Ofner wrote:
Sorry about the poor xml of the input. It was way too long to include and my edit dropped off some closing </story> tags. I have tried to fix in the output and input below. The following stylesheet groups by groups starting with story[cluster_num] and then simply processes the groups where story[story-title] have a special template wrapping those elements in a level2 element. That achieves the result you have described.
<xsl:output method="xml" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match="bodymatter"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:for-each-group select="*" group-starting-with="story[cluster_num]"> <level1 class="unit" unitnum="{position()}"> <xsl:apply-templates select="current-group()"/> </level1> </xsl:for-each-group> </xsl:copy> </xsl:template> <xsl:template match="story[story-title]"> <level2 class="selection"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </level2> </xsl:template> </xsl:stylesheet> -- Martin Honnen http://JavaScript.FAQTs.com/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|