XSLT <xsl:key> Element

From http://www.w3schools.com (Copyright Refsnes Data)

# XSLT <xsl:key> Element

Complete XSLT Element Reference

## Definition and Usage

The <xsl:key> element is a top-level element which declares a named key that can be used in the style sheet with the key() function.

Note: A key does not have to be unique!

## Syntax

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

## Attributes

Attribute | Value | Description
--- | --- | ---
name | name | Required. Specifies the name of the key
match | pattern | Required. Defines the nodes to which the key will be applied
use | expression | Required. The value of the key for each of the nodes

### Example 1

Suppose you have an XML file called "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 an XSL file like this:

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

To find the person with id="050676", write (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>

Complete XSLT Element Reference

From http://www.w3schools.com (Copyright Refsnes Data)