Finding an Element with a Particular Key

The key() function, defined in the XSLT Recommendation, obtains the node whose key value matches the specified key. The format is

node-set key(string, object)
               

            

The first argument specifies the name of the key. The value of this argument must be a qualified name. The second argument specifies the node or nodes to examine. When the second argument is a node set, the result is the union of the results of applying the key() function to the string value of each of the nodes in the set. When the second argument is any other type, the XPath processor converts the argument to a string, as if by a call to the string() function. The key() function returns a node set that contains the nodes in the same document as the context node that have a value for the named key that is equal to this string.

Example

For example, the videos.xml document, which is in the examples directory of the Stylus Studio installation directory, contains the following elements:

<result> 
               

              
<actors> 
                   
<actor id="00000003">Jones, Tommy Lee</actor> 
                   
... 
                   
</actors> 
                   
<videos> 
                   
<video id="id1235AA0"> 
                   
<title>The Fugitive</title> 
                   
... 
                   
<actorRef>00000003</actorRef> 
                   
<actorRef>00000006</actorRef> 
                   
... 
                   
</video> 
                   
... 
                   
</videos> 
                   

                
</result>

When you display information about a video in a Web browser, you want to display the names of the actors. Because the actors are referenced only by an ID number, you create a key table in your stylesheet:

<xsl:key 
               

              
name="actors" 
                   
match="/result/actors/actor" 
                   
use="@id"/>
                   

                

This indexes all actors by their ID. To process a video, your stylesheet specifies the following:

<xsl:for-each select="actorRef"> 
               

              
<xsl:value-of select="key('actors', .)"/> 
                   

                
</xsl:for-each>

This instructs the XPath processor to look up the actor element in the actors key table by using the actorRef element as a key.

Deltek Adds XML Support to Advanced ERP, Financial and HR applications with Stylus Studio

Learn how Deltek uses Stylus Studio to build ERP, financial, HR, and project management applications for the professional services industry and large government systems integrators.

Energy Companies That Use Stylus Studio

Forget red bull! Many energy companies are using Stylus Studio 2006 for their quick pick me up during the work day. Come see which energy companies are getting the boost they need with Stylus Studio!

XQuery and Web Services

XQuery provides a flexible means for data abstraction, while Web services provide process abstraction. In this online video demonstration, learn how integrated XQuery & Web service tools simplify development of XQuery-based Web service applications.

Electronics & Electrical Equipment

Many electronics and electrical equipment companies need the most powerful XML IDE to power up their companies. Come see which electronics & electrical equipment companies are wired up with Stylus Studio 2006.

Stylus Most Wanted

 
Free Stylus Studio XML Training:
W3C Member