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>