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
--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--