Subject: AW: [xsl] xsl:key function help From: "David Preuss" <d.preuss@xxxxxxxxxxx> Date: Thu, 4 Aug 2005 08:22:25 +0200 |
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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Parsing XML from a CDATA , David Carlisle | Thread | Re: AW: [xsl] xsl:key function help, Joris Gillis |
Re: [xsl] Printing ancestor element, Mukul Gandhi | Date | Re: AW: [xsl] xsl:key function help, Joris Gillis |
Month |