Subject: Re: Loading an external file of index|
From: Pierre Attar <patt@xxxxxxxxx>
Date: Fri, 23 Jun 2000 11:58:49 +0200
At 12:42 PM 6/22/00 +0200, Eric van der Vlist wrote: >I haven't tested it since my favorite XSLT processors is lacking key >support, but something like : > ><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >version="1.0"> > > <xsl:output method="html" indent="no"/> > > <xsl:key name="mysetofkeys" > match="document('../shared/shared.xml')/keybase/key" > use="@name"/> > > .... > ></xsl:stylesheet > > >should work from my understanding of the rec.
Unfortunately, I know from struggling with some fairly recent questions that this doesn't work. You can't use the document() function within the 'match' attribute of xsl:key. Instead, define the key as if the input document was the one with the keys in, at the top level of the stylesheet:
<xsl:key name="mysetofkeys" match="/keybase/key" use="@name" />
Then, when you want to use it, put the key() function within an xsl:for-each that has the document that holds the keys as its 'select' attribute:
<xsl:variable name="keyrefname" select="@name" />
<b><xsl:value-of select="key('mysetofkeys', $keyrefname)/ACRONYM" /></b>
This is kind of explained in the XSLT Recommendation at http://www.w3.org/TR/xslt#function-key, right at the end of that section.
I hope that helps,
Dr Jeni Tennison Epistemics Ltd, Strelley Hall, Nottingham, NG8 6PE Telephone 0115 9061301 ? Fax 0115 9061304 ? Email jeni.tennison@xxxxxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list