Subject: RE: [xsl] keyed lookup table From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 17 Feb 2005 23:41:46 -0000 |
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: [xsl] 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] keyed lookup table, Kevin Rodgers | Thread | RE: [xsl] keyed lookup table, Kevin Rodgers |
Re: [xsl] xslt adds elements twice , Jon Gorman | Date | [xsl] Matching not only references , Young Matthew |
Month |