This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Key/Use
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] Key/Use
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Wed, 5 Sep 2001 15:11:54 +0100
- References: <OF857870F4.78B36387-ON85256ABE.004B10FE@mapinfo.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Excuse my ignorance but, why is this
<xsl:key name="lookup" match="row"
use="concat($TRANSFORMER_SourceCountry,'_layer_name')"/>
any more useless than?:
<xsl:key name="lookup" match="row" use="US_layer_name"/>
The first one uses a constant key value. If it were legal syntax (which
it would be if the explicit comment disallowing variables had not been
added to the spec) and if
$TRANSFORMER_SourceCountry were 'US' then
<xsl:key name="lookup" match="row"
use="concat($TRANSFORMER_SourceCountry,'_layer_name')"/>
would be
<xsl:key name="lookup" match="row"
use="'US_layer_name'"/>
ie every row gets the same key value 'US_layer_name' Thus you couldn't
use this key to get any subset of the row elements, just all of them at
once, in which case there's no need for a key at all you could just use
<xsl:variable name="x" select="//row"/>
The second one uses a non-constant Xpath.
each row gets the value of the US_layer_name element which is the child
of that row, so different rows potentially get different keys, and you
can use xsl:key to quickly find the rows with any particular key value.
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 or alternatively call
Star Internet for details on the Virus Scanning Service.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list