Elemento <xsl:key> do XSLT

Definição e uso

<xsl:key> é um elemento de nível superior, que pode declarar uma chave nomeada (ou seja, um par de nome e valor atribuído a elementos específicos do documento XML).

Esta chave é usada pela função key() no estilo, ajudando a acessar eficientemente elementos atribuídos em documentos XML complexos.

Observação:A chave não precisa ser única!

Sintaxe

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

Atributo

Atributo Valor Descrição
name name Obrigatório. Define o nome da chave.
match pattern Obrigatório. Define para qual nó a chave é aplicada.
use expression

Obrigatório. Especifica a expressão a ser usada como valor da chave.

O valor da chave pode ser qualquer um dos seguintes: atributo, elemento filho ou conteúdo do elemento correspondente.

Exemplo

Exemplo 1

Supondo que você possua um arquivo XML chamado "persons.xml":

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

Você pode definir uma chave no arquivo XSL, assim:

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

Para encontrar o person com id="050676", use este código (no arquivo XSL):

<?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 />
    Nome: <xsl:value-of select="@name"/>
    </p>
  </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>