This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: key with restricting the scope of use attribute
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] key with restricting the scope of use attribute
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Fri, 11 May 2001 15:15:52 +0100
- References: <20010511134835.64060.qmail@web12601.mail.yahoo.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
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