Re: [xsl] key with restricting the scope of use attribute

Subject: Re: [xsl] key with restricting the scope of use attribute
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 11 May 2001 15:15:52 +0100
I know I've said this before but your key isn't doing anything at all.

 <xsl:for-each select="key('MyKey1',concat(generate-id(),':','1:1'))">
  MyKey1:@id=<xsl:value-of select="@id"/><br/>
 </xsl:for-each>

is just

 <xsl:if test="@x=1 and @y=1">
  MyKey1:@id=<xsl:value-of select="@id"/><br/>
 </xsl:if>

There is no for-each involved really as you are never making any use of
the key. The point of a key is to hash all elements with @x and @y
being 1 so you can find them quickly.
You do that but then don't use it and search the document again the slow
way by going

<xsl:apply-templates select="/root/a[1]/b[1]"/>

Then you use a key lookup that can only ever succeeed on the current
node, so you know whether it will succeed before you do it.

David

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet delivered through the MessageLabs Virus Scanning Service. For further information visit http://www.star.net.uk/stats.asp

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread