|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: keyed lookup table
This works for me:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="language-table">
<name code="ar">ARABIC</name>
<name code="de">GERMAN</name>
<name code="en">ENGLISH</name>
<name code="zh">CHINESE</name>
</xsl:variable>
<xsl:key name="language-code" match="name" use="@code"/>
<xsl:template match="/">
<xsl:variable name="stylesheet" select="document('')"/>
<xsl:value-of select="key('language-code', 'de', $stylesheet)"/>
</xsl:template>
</xsl:stylesheet>
run against itself outputs
GERMAN
As DC said, though, document('') is inefficient and in 2.0 is never
necessary.
key('language-code', 'de', $language-table)
gives the same result and is much more efficient.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Kevin Rodgers [mailto:kevin.rodgers@xxxxxxx]
> Sent: 17 February 2005 16:44
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: keyed lookup table
>
> I've got a working lookup table implemented like this:
>
> <xsl:variable name="language-table">
> <!-- See ISO 639 -->
> <name code="ar">ARABIC</name>
> <name code="de">GERMAN</name>
> <name code="en">ENGLISH</name>
> ...
> <name code="zh">CHINESE</name>
> </xsl:variable>
>
> that I can access in my templates with an expression like:
>
> $language-table/name[@code='de']
>
> I was hoping I could access that table via a key:
>
> <xsl:key name="language-code" match="name" use="@code"/>
>
> that I would access with this expression:
>
> key('language-code', 'de', $stylesheet)"/>
>
> given:
>
> <xsl:variable name="stylesheet" select="document('')"/>
>
> But the key function always returns an empty sequence. Why?
> Can I use
> a key on these $language-table/name nodes, which are internal to the
> stylesheet? (I'm sure it will work if I move the lookup
> table from the
> stylesheet to its own external XML document, which is more
> maintainable
> anyway, but I want to udnerstand what is wrong with the idea
> of a keyed
> lookup table within the stylesheet.)
>
> Thanks,
> --
> Kevin
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








