XSLT <xsl:key> element

Definitie en gebruik

<xsl:key> element is een topniveau element, dat een genaamd sleutel kan declareren (dat wil zeggen, een naam en waarde paar toegewezen aan specifieke elementen in het XML-document).

Deze sleutel wordt gebruikt via de key() functie in het sjabloon, om je te helpen om effectief toegang te krijgen tot toegewezen elementen in complexe XML-documenten.

Opmerking:De sleutel hoeft niet uniek te zijn!

Grammatica

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

Eigenschappen

Eigenschappen Waarde Beschrijving
name name Verplicht. Bepaal de naam van de sleutel.
match pattern Verplicht. Definieer op welke knooppunten deze sleutel wordt toegepast.
use expression

Verplicht. Specificeer de expressie die moet worden gebruikt als de waarde van deze sleutel.

De waarde van de sleutel kan een van de volgende waarden zijn: eigenschappen, subelementen of de inhoud van het overeenkomende element.

Voorbeeld

Voorbeeld 1

Stel dat je een XML-bestand hebt genaamd "persons.xml":

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

Je kunt een sleutel definiëren in het XSL-bestand, zoals hieronder:

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

Om de persoon met id="050676" te vinden, gebruik dan deze codes (in het XSL-bestand):

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