XSLT <xsl:key> element

Definition and Usage

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

This key is used through the key() function in the stylesheet to help you effectively access 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. Specifies the name of the key.
match pattern Required. Defines the node to which this key is applied.
use expression

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

The key value can be any of the following values: 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>