Quick References
      ADO
      ASP
      CSS2
      HTML
      JavaScript
      Jet SQL
      VBScript
      WML
      WMLScript
      WSH
      XHTML
      XML DOM
      XSLT

Features
      Knowledge Base
      Tutorials

Partners
     ZVON.ORG
     XML
     Planet Source Code
     VisualBuilder
     Web Design
     Your HTML Source
     XML/XSLT Forums
     ASPAlliance
     Scripts
     
     Programmers Heaven
     Tek-Tips Forums
     Developer Fusion
     Code Project


   







XSLT FUNCTION:  key

node-set = key(name, value)
 
The key function returns a node-set that contains all of the nodes in an XML document that match the name-value pair of the name and value arguments. This function is primarily used for locating nodes in very large XML documents. Since there may not be a match, the returned node-set can contain zero or more nodes. (The actual efficiency of finding the nodes is implementation dependent and is typically based upon prior indexing.)
 
The key function is used in conjunction with the xsl:key element. Before the key function can be called, there must have been a prior declaration of an xsl:key element that has a name attribute that matches the name argument of the key function.
 
The xsl:key element alerts the XSLT processor to create an indexed data structure based upon the key expressions ahead of time. If there are no xsl:key elements, then the time-consuming indexing is not performed.
 
The xsl:key element declares a named key that can be used by the key function.
 
name
 
The mandatory name attribute specifies the qname of the key. The value of the name attribute of the key function must match the value of the name attribute of one or more corresponding xsl:key elements. (This is possible since a key does not have to be unique and, further, a key can refer to more than one node and a node can have more than one key.)
 
value
 
The mandatory value attribute specifies the value of the key. This value is type dependent. The value can be of type node-set. For all other types, the value will be converted to a string by the XPath string core function.
 
We use the DevGuru Staff List Two XML file for our example with the following header:
<?xml-stylesheet type="text/xsl" href="xslt_example_key.xsl"?>
and we name it: xslt_example_key.xml
 
We search for Road Runner.
 
Code for xslt_example_key.xsl:
 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:key name="stafflist" match="programmer" use="@name" />
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="key('stafflist', 'Road Runner')">
<div>
NAME: <xsl:value-of select="@name" />
<br />
DOB: <xsl:value-of select="@dob" />
<br />
AGE: <xsl:value-of select="@age" />
<br />
ADDRESS: <xsl:value-of select="@address" />
<br />
PHONE: <xsl:value-of select="@phone" />
<hr />
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

 
Output:
 
Click to view output in separate window - requires Internet Explorer

 
 


Copyright 1999-2005 by Infinite Software Solutions, Inc. All rights reserved.
Trademark Information