[xsl] Problem Counting number of Keys.

Subject: [xsl] Problem Counting number of Keys.
From: "Graham Bagshaw" <gbagshaw@xxxxxxxxxxx>
Date: Wed, 22 Sep 2004 08:21:04 -0400
Hi,
I am trying to create a 'Grouped' output from the following XSML/XSLT and I need to count the number of unique records in the group.


The output should look like:-

Contact               # of Visits      Account
----------------------------------------------------------
johnson, johnny        2             account 1 sub
bragg, billy               1              account2

Count = 2 <-----this is the value I am after, however when I try
<xsl:value-of select="count(key('keyContactGUID',//objectid.contactid))"/>
it returns 5.

What am I doing wrong???

Any help would be greatly appreciated.

Thanks,
Graham

XML engine:
Vendor: Microsoft
Vendor URL: http://www.microsoft.com


XML:


<resultset>
<result>
<activityid>{88320F75-4C77-4750-9E3F-C3991210941E}</activityid>
<ownerid name="Admin, Sys" dsc="0" type="8">{31157DA0-9F83-4495-B91A-A3EB012F84A3}</ownerid>
<owninguser>{31157DA0-9F83-4495-B91A-A3EB012F84A3}</owninguser>
<objectid.contactid>{BC2119B2-3BD6-4B86-8D3C-26738ABD63B5}</objectid.contactid>
<objectid.fullname>johnson, johnny</objectid.fullname>
<objectid.accountid name="account 1 sub" dsc="0">{FD5180B0-D7D8-45A4-8665-34A2807D2F3D}</objectid.accountid>
</result>
<result>
<activityid>{368CCF74-559C-450F-8DD4-23646DDB0787}</activityid>
<ownerid name="Admin, Sys" dsc="0" type="8">{31157DA0-9F83-4495-B91A-A3EB012F84A3}</ownerid>
<owninguser>{31157DA0-9F83-4495-B91A-A3EB012F84A3}</owninguser>
<objectid.contactid>{BC2119B2-3BD6-4B86-8D3C-26738ABD63B5}</objectid.contactid>
<objectid.fullname>johnson, johnny</objectid.fullname>
<objectid.accountid name="account 1 sub" dsc="0">{FD5180B0-D7D8-45A4-8665-34A2807D2F3D}</objectid.accountid>
</result>
<result>
<activityid>{368CCF74-559C-450F-8DD4-23646DDX0787}</activityid>
<ownerid name="Admin, Sys" dsc="0" type="8">{31157DA0-9F83-4495-B91A-A3EB012F84A3}</ownerid>
<owninguser>{31157DA0-9F83-4495-B91A-A3EB012F84A3}</owninguser>
<objectid.contactid>{4FC6C984-6890-424E-9A73-30A5BA083422}</objectid.contactid>
<objectid.fullname>bragg, billy</objectid.fullname>
<objectid.accountid name="account2" dsc="0">{FG5180B0-D7D8-45A4-8665-34A2807D2F3D}</objectid.accountid>
</result>
</resultset>




XSLT:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<!-- Define keys used to group elements -->
<xsl:key name="keyContactGUID" match="result" use="objectid.contactid"/>



<xsl:template match="/"> <!-- autonumber for the sorting id column --> <html> <body> <h2>Grouping Test</h2>

<table border="1">
<tr bgcolor="#9acd32">
<th>Contact</th>
<th># of Visits</th>
<th>Account</th>
</tr>

<!-- Process each Contact-->
<xsl:for-each select="//result[generate-id(.) = generate-id(key('keyContactGUID',objectid.contactid)[1])]">


<tr>
<xsl:variable name="CID">
<xsl:value-of select="objectid.contactid"/>
</xsl:variable>
<td>
<xsl:value-of select="objectid.fullname"/>
<p/>
</td>
<td>
<xsl:value-of select="count(key('keyContactGUID',objectid.contactid)/activityid)"/>
</td>
<td>
<xsl:value-of select="objectid.accountid/@name"/>
</td>
</tr>


</xsl:for-each>


</table>


Count = <xsl:value-of select="count(key('keyContactGUID',resultset//result//objectid.contactid))"/>

</body>
</html>
</xsl:template>
</xsl:stylesheet>

_________________________________________________________________
On the road to retirement? Check out MSN Life Events for advice on how to get there! http://lifeevents.msn.com/category.aspx?cid=Retirement



--+------------------------------------------------------------------ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx> --+--

Current Thread