XSLT <xsl:key> Element

Definition and Usage

The <xsl:key> element is a top-level element that can declare a named key (i.e., a name and value pair assigned to the specified elements in the XML document).

This key is used through the key() function in the stylesheet to help you efficiently access the assigned elements in complex XML documents.

Note:The key does not have to be unique!

Syntax

<xsl:key
name="name"
match="pattern"
use="expression"/>

Attribute

Attribute Value Description
name name Required. Specify the name of the key.
match pattern Required. Define which node the key is applied to.
use expression

Required. Specify the expression to be used as the value of this key.

The key value can be any of the following: attribute, child element, or content of the matching element.

Instance

Example 1

Assuming you have an XML file named "persons.xml":

<persons>
  <person name="Tarzan" id="050676"/>
  <person name="Donald" id="070754"/>
  <person name="Dolly" id="231256"/>
</persons>

You can define a key in the XSL file like this:

<xsl:key name="preg" match="person" use="@id"/>

To find the person with id="050676", please use the following code (in the XSL file):

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:key name="preg" match="person" use="@id"/>
<xsl:template match="/">
  <html>
  <body>
  <xsl:for-each select="key('preg','050676')">
    <p>
    Id: <xsl:value-of select="@id"/><br />
    Name: <xsl:value-of select="@name"/>
    </p>
  </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>