Re: [xsl] A general <xsl:key> question.

Subject: Re: [xsl] A general <xsl:key> question.
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 5 Dec 2002 17:22:52 GMT
> Do keys have to be used within a context in which the associated nodes
> exist?

I'm not sure I parsed that correctly, but..

key() like id() will only ever return nodes that are in teh same
document as the current node. If you use document() or a xx:node-set()
extension then these things are new documents.

The usual idiom (I believe there is an example in the xslt spec)

is if you are processing document a and want to look up a key in
document b then you do

<xsl:for-each select="document('b')">
  <xsl:copy-of select="key(....
</xsl:for-each>

Note the for-each is just looping over a list of 1, just to move the
current node to the other document. of course if you are doing that a
lot you can define $bdoc to be "document('b') and use
$bdoc instead of calling document() each time.

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


Current Thread