Skip to main content

XSLT <xsl:key>

XSLT <xsl:key>

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

AttributeValueRequired/OptionalDescription
namenameRequiredSpecifies the name of the key
matchpatternRequiredDefines the nodes to which the key will be applied
useexpressionRequiredThe value of the key for each of the nodes

Example

Suppose you have an XML file called "persons.xml":

persons.xml
<persons>  
<person name="Natan" id="020534"/>
<person name="Leon" id="030359"/>
<person name="Tom" id="123456"/>
</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="123456", write (in the XSL file):

<?xml version="1.0" encoding="UTF-8"?>
<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','123456')">
<p>
Id: <xsl:value-of select="@id"/><br />
Name: <xsl:value-of select="@name"/>
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>

</xsl:stylesheet>