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 aos elementos especificados no documento XML).
Esta chave é usada pelo função key() no estilo, ajudando você a acessar eficazmente os elementos atribuídos em documentos XML complexos.
Comentário: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. Determina 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, sub-elemento 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 a pessoa com id="050676", use o seguinte 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>