RE: [xsl] xsl:key function help

Subject: RE: [xsl] xsl:key function help
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 3 Aug 2005 17:39:30 +0100
Try count(key('Categories','Microsoft'))

The second argument of key() is an expression that evaluates to the key
value you are searching for. The expression you have supplied is Topic,
which means child::Topic, and as the context node is "/" and "/" doesn't
have a child Topic, you have supplied an empty node-set as the key value, so
nothing matches.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: David Preuss [mailto:d.preuss@xxxxxxxxxxx] 
> Sent: 03 August 2005 16:02
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] xsl:key function help
> 
> Dear all,
> 
> as a newbie I tried to play with the key function but didnt 
> get it. Could
> someone help me out?
> 
> I got following stylesheet just to test wether its working or not:
> 
> <?xml version='1.0' encoding='UTF-8'?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> <xsl:key name="Categories" match="Tip" use="@Topic" />
> <xsl:output method="xml"/>
> 	
> 	<xsl:template match="/">
> 		<xsl:value-of select="count(key('Categories',Topic))"/>
> 	</xsl:template>
> 
> </xsl:stylesheet>
> 
> The Xml is:
> 
> <TipDatabase>
> 	<Tip Topic="Microsoft" Subtopic="Exchange">
> 		<Title>
> 			Make public folders available offline
> 		</Title>
> 		<Content>
> 			Public folders can be made available offline by
> right clicking the folder and adding it to the Favorites folder.
> 			<Image Name="AddPublicFoldersToFavorites.jpg"/>
> 			Then adding them to the list of 
> synchronized folders
> by using keyboard combination Ctrl+Alt+S and selecting Edit.
> 			<Image 
> Name="PublicFoldersOfflineAvailable.jpg"/>
> 		</Content>
> 	</Tip>
> ...
> <TipDatabase>
> 
> Basically I want to use Muenchian Grouping to render my 
> navigation later but
> first I have to get the concepts clear in my head.
> 
> I use the stylesheet inside .net transform method. When I 
> output the above
> stylesheet The result is:
> 
> 0
> 
> What is wrong here or what am I missing.
> David

Current Thread