[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

two-level grouping xslt 2.0

Subject: two-level grouping xslt 2.0
From: Terry Ofner <tofner@xxxxxxxxxxx>
Date: Thu, 28 Feb 2008 10:24:13 -0500
 two-level grouping xslt 2.0
I have been having trouble with this grouping problem:

Input:
<book>
<bodymatter>
	<story>
		<cluster_num>Cluster ONE</cluster_num>
		<cluster_head>What Influences a Decision?</cluster_head>
		<thinking_skill>Thinking Skill analyzing</thinking_skill>
	</story>
	<story>
		<pagenum>13</pagenum>
	</story>
	<imggroup>
		<img src="DecisionsDecisions3-web-images/Field%20boy%
20final_fmt.jpeg" alt="missing image file"/>
	<prodnote/></imggroup>
	<story>
		<pagenum>14</pagenum>
	</story>
	<story>
		<story-title>Playing God</story-title>
		<author>Ouida Sebestyen</author>
		<p class="initial-paragraph">He was ...</p>
		<p>So he wasnt going to get away without saying good-bye after
all...</p>
		<!--multiple story, image, and page elements edited out-->

	<story>
		<story-title>TLA</story-title>
		<author>Jane McFann</author>
		<p class="initial-paragraph">I trudged down the hallway of ...</p>
		<p ....</p>
		<!--etc-->

	<story>
		<cluster_num>Cluster TWO</cluster_num>
		<cluster_head>Good Decision or Bad Decision?</cluster_head>
		<thinking_skill>Thinking Skill evaluating</thinking_skill>
	</story>
	<story>
		<pagenum>51</pagenum>
	</story>
	<imggroup>
		<img src="DecisionsDecisions3-web-images/school%20final_fmt.jpeg"
alt="missing image file"/>
	<prodnote/></imggroup>
	<story>
		<pagenum>52</pagenum>
	</story>
	<story>
		<story-title>A Kind of Murder</story-title>
		<author>Hugh Pentecost</author>
		<p class="initial-paragraph">...</p>
</bodymatter>
</book>

I would like to group each <cluster_num> inside <level1> elements and
<story-title> inside <level2> elements

Here is one of the template rules I have tried:

<xsl:template match="bodymatter">
<bodymatter>
<xsl:for-each-group select="*" group-starting-with="story
[child::cluster_num]"> <!--for some reason "story/cluster_num" does
not catch it-->
	<level1 class="unit">
	<xsl:attribute name="unitnum"><xsl:value-of select="position()"/></
xsl:attribute><xsl:text>
		</xsl:text>
	<xsl:for-each-group select="current-group()/*" group-starting-
with="story[child::story-title]">
		<level2 class="selection">
			<xsl:apply-templates select="current-group()"/>
		</level2>
	</xsl:for-each-group>
<xsl:apply-templates select="current-group()"/>
</level1><xsl:text>
</xsl:text>
</xsl:for-each-group>
</bodymatter>
</xsl:template>

This template rule matches <level1> just fine; <level2> not so much:

<bodymatter>
<level1 class="unit" unitnum="1">
		<level2 class="selection">
<cluster_num>Cluster ONE</cluster_num>
<cluster_head>What Influences a Decision?</cluster_head>
<thinking_skill>Thinking Skill analyzing</thinking_skill>

<!--no <story-title> elements grouped-->

I appreciate all the help this group gives.

Terry

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.