generate-id

Syntax

generate-id( ) -> string
generate-id(node) -> string


Argumente
Bezeichnung Datentyp Bedeutung
node node-set erster Knoten des Knotensets, der die generierte ID erhält; ist das Knotenset leer, gibt die Funktion einen leeren String zurück.

generate-id( )

generiert einen String, der den aktuellen Knoten eindeutig identifiziert. Wurde das Attribute [node] definiert, wird die Funktion auf den ersten Knoten des Knotensets angewandt. Der String besteht aus ASCII alphanumerischen Zeichen, wobei das erste Zeichen immer alphabetisch ist. Wird die Funktion mehrfach auf einen Knoten angewandt, erhält der Knoten stets die gleiche ID.


Definition

XSLT Kapitel 12.4


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:template match="/">
     <HTML>
          <HEAD>
               <TITLE>Funktion: generate-id() / 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:apply-templates select="order/product"/>
     </TABLE>
     <xsl:for-each select="order/product">
          <A HREF="#{generate-id(name)}">
               <xsl:value-of select="name"/>
          </A>
          <xsl:if test="position() != last()">
               <xsl:text> --- </xsl:text>
          </xsl:if>
     </xsl:for-each>
</xsl:template>

<xsl:template match="product">
     <TR>
          <TD><xsl:value-of select="@department"/></TD>
          <TD>
               <A NAME="{generate-id(name)}">
                    <xsl:value-of select="name"/>
               </A>
          </TD>
          <TD ALIGN="RIGHT">
               <xsl:value-of select="price"/>
               <xsl:text> </xsl:text>
               <xsl:value-of select="currency"/>
          </TD>
     </TR>
</xsl:template>

</xsl:stylesheet>


© 2001 by Timo Schäfer