RE: [xsl] Applying Attributes with Grouping Method

Subject: RE: [xsl] Applying Attributes with Grouping Method
From: "Fanghanel, Karl" <Karl.Fanghanel@xxxxxxxxx>
Date: Wed, 21 Mar 2007 10:05:24 -0400
Thanks for the input Dave.

I did consider and tried using for-each-group but I couldn't get it to
work.
I think I now know why.

Karl

-----Original Message-----
From: David Carlisle [mailto:davidc@xxxxxxxxx]
Sent: Wednesday, March 21, 2007 8:49 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Applying Attributes with Grouping Method


> I'm tired of banging my head against the wall.

Keep doing it, you get used to it eventually!

> Now, I can get the name attributes grouped using the Muenchian Method
> in

you are using saxon8 so XSLT2 so you don't need Muenchian grouping,
once I'd made your input example well formed, it's just a call to
xsl:for-each-group:

<connection>
	<conn name="P21" part="W1123">
		<property name="s_des" val="Part_A"/>
	</conn>
	<conn name="P22" part="W1123">
		<property name="s_des" val="Part_A"/>
	</conn>
	<conn name="P23" part="W1123">
		<property name="s_des" val="Part_A"/>
	</conn>
	<conn name="J31" part="W1144">
		<property name="s_des" val="Part_B"/>
	</conn>
	<conn name="J32" part="W1145">
		<property name="s_des" val="Part_C"/>
	</conn>
</connection>




<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output indent="yes"/>

  <xsl:template match="connection">
    <report>
      <xsl:for-each-group select="conn"
group-by="property[@name='s_des']/@val">
	<item part="{@part}"
	uantity="{count(current-group())}"
	val="{current-grouping-key()}"
	name="{current-group()/@name}"/>
      </xsl:for-each-group>
    </report>
  </xsl:template>

</xsl:stylesheet>


$ saxon8 connection.xml  connection.xsl
<?xml version="1.0" encoding="UTF-8"?>
<report>
   <item part="W1123" uantity="3" val="Part_A" name="P21 P22 P23"/>
   <item part="W1144" uantity="1" val="Part_B" name="J31"/>
   <item part="W1145" uantity="1" val="Part_C" name="J32"/>
</report>


David

Current Thread