RE: [xsl] Key lookup without context.

Subject: RE: [xsl] Key lookup without context.
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 19 Dec 2008 13:36:41 -0000
Define a global variable

<xsl:variable name="root" select="/"/>

and use $root as the third argument of key().

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: peter verhaar [mailto:peter.verhaar1@xxxxxxxxx] 
> Sent: 19 December 2008 13:21
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Key lookup without context.
> 
> Hello,
> 
> I have a 'context-free' function which does a key() lookup. 
> However, saxon is complaining:
> 
> SXWN9009: Cannot select a node here: the context item is undefined
> 
> Question: How can I say: "Start a key lookup from the root of 
> the file"?
> 
> I tried select="\\key('myKey'...."  but this didn't work.
> 
> So I have:
> 
> <xsl:key name="myKey" match="books/book/...." use="..."/>
> 
> <xsl:function name="...." as="xs:double">  <xsl:param name="input"/>
>     <xsl:for-each select="key('myKey',$input)">
>         processing goes here
>     </xsl:for-each>
> </xsl:function>

Current Thread