Subject: Re: [xsl] Who can give me tech info about xsl:key and key()? (was: Lookup in a xml file with a key) From: tcn@xxxxxxxxxxxxx (Trevor Nash) Date: Tue, 10 Jul 2001 14:28:57 GMT |
>Hi xsl:key/key()-experts, > >I've seen more of these XSL's as shown below and I'm surprised that they >work. >Could someone give me more technical info about how it works? >What surprises me is that you declare an xsl:key at the top of the XSL, for >a second XML-file which is to be read by the document()-function. So is it >possible to use xsl:key for multiple XML's and how do you use the >key()-function then? You do not declare a key 'for a particular file'. A key declaration could apply to *any* file processed by the stylesheet. Think of it like this: key('k', 'v') says use key definition 'k' to find all the nodes in the same document as the context node which match the key's 'select' and have 'v' as the value of the 'use' expression. Notice the phrase 'same document as the current context' -- this is why you often see a for-each such as > <xsl:for-each select="document('lookup2.xml')"> > ..."key('kLookup',$input)" > </xsl:for-each> The value of the select can in fact be any old node as long as its from the right document. >And when is the key-table build, what is its scope and how must I imagine >such a table (if it is one)? It is usually a hash table of some kind, and it is usually built the first time you apply key() to a document. Depends on the processor you are using. You can always concoct an XPath expression which will do exactly the same as any given use of key(). So you can also think of it as a way of defining your own XPath functions, with the added feature that the XSLT processor will take the use of xsl:key as a hint to find a fast way of executing it assuming it will be used lots of times. A key can be a lot easier to read than the equivalent XPath. Regards, Trevor Nash -- Traditional training & distance learning, Consultancy by email Melvaig Software Engineering Limited voice: +44 (0) 1445 771 271 email: tcn@xxxxxxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Who can give me tech info abo, Rene de Vries | Thread | [xsl] Re: xsl:key question, Dimitre Novatchev |
[xsl] breadcrumbs, Eric Schenfeld | Date | RE: [xsl] Replace a sequence of el, Bedwell Tom |
Month |