xsl:key

Syntax

<xsl:key/>


Postition

Top-Level Element


Attribute
Bezeichnung Wert Bedeutung
name QName Name des Schlüssels
match Pattern definiert die Knoten, für die der Schlüssel zugänglich ist
use Expression bestimmt den Wert für den Schlüssel

<xsl:key>

definiert einen Schlüssel, welcher mit der key( ) Funktion zugänglich ist und der ein Knotenset beinhalten kann. Desweiteren kann der Name eines Schlüssels mehrmals vorkommen. Importierte Schlüssel werden dem Haupt-Stylesheet hinzugefügt und besitzen keinen anderen Status. Das Element ist hilfreich, da der XSLT-Prozessor ein Index von Schlüsseln erstellt und damit die Suche nach bestimmten Elementen erleichtert.


Definition

XSLT Kapitel 12.2


Beispiel

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
<xsl:output method="html"/>

<xsl:key name="department-id" match="/shop/order/product" use="@department"/>

<xsl:template match="/">
     <HTML>
          <HEAD>
               <TITLE>Element: &lt;xsl:key&gt; / Beispiel 01</TITLE>
          </HEAD>
          <BODY>
               <xsl:apply-templates select="shop"/>
          </BODY>
     </HTML>
</xsl:template>

<xsl:template match="shop">
     <TABLE BORDER="1">
          <TR>
               <TH WIDTH="150">Abteilung:</TH>
               <TH WIDTH="100">Artikel:</TH>
               <TH WIDTH="100">Preis:</TH>
          </TR>
          <xsl:for-each select="key('department-id', 'A02')">
               <TR>
                    <TD><xsl:value-of select="@department"/></TD>
                    <TD><xsl:value-of select="name"/></TD>
                    <TD ALIGN="RIGHT">
                         <xsl:value-of select="price"/>
                         <xsl:text> </xsl:text>
                         <xsl:value-of select="currency"/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>

</xsl:stylesheet>


© 2001 by Timo Schäfer