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

AW: xsl:key function help

Subject: AW: xsl:key function help
From: "David Preuss" <d.preuss@xxxxxxxxxxx>
Date: Thu, 4 Aug 2005 08:22:25 +0200
xsl key function
Hello again,

thanks for your help. Finally I dont understand the basic concept I think. 

> 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.

That is OK so far because I can understand. Regarding the Muenchian method
which is described on Jenis site I tried the following:

<?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:apply-templates select="Tip[generate-id(.) =
generate-id(key('Categories',@Topic)[1])]"/>
	</xsl:template>

	<xsl:template match="Tip" >
		<xsl:for-each select="key('Categories', @Topic)">
			<xsl:value-of select="@Subtopic"/>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>

That does not work and I dont know why. As you stated earlier I have to
provide a matching child. What is it? A string or a nodeset or an object?
When trying to understand Jenis explanations (My capabilities either in
english and in xslt are very poor) I really had problems to understand the
generate-id approach and also the use of the attributes.

key('Categories',@Topic)[1]
sounds for me like: 

give me the first node in the nodeset which was returned by the key function

But in my case that seem not to match anything. When I just replace teh
xpath on root level with xsl:apply-templates then the Tip template matches
even with the @Topic given as parameter to the key function.

Shed some light on my weird understanding please all you gurus.

Thanks,

David Preuss

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.