<xsl:with-param> | |
Diese Anweisung definiert einen Parameter, der an die Vorlage (Template) weitergeleitet wird. Sobald die Vorlage aufgerufen ist, können Werte für den Parameter übergeben werden. | |
Kategorie | |
Untergeordnete Anweisung (<xsl:with-param> erscheint im Element <xsl:apply-templates> oder im Element <xsl:call-template>) |
|
Beschreibung | |
Die Anweisung <xsl:with-param> definiert einen Parameter, der an die Vorlage weitergeleitet wird. Wenn die Vorlage aufgerufen ist, können Werte für den Parameter übergeben werden. Es gibt drei Methoden, um den Wert des Parameters zu definieren:
Wird an die Vorlage (<xsl:with-param name="x"/>) kein Wert übergeben, wird, falls vorhanden, der Vorgabewert des Parameters verwendet. Der Vorgabewert des Parameters wird über das Element <xsl:param> innerhalb von <xsl:template> definiert. Weitere Erläuterungen hierzu erhalten Sie in der Beschreibung des Elements <xsl:param>. |
|
Obligatorische Attribute | |
|
|
Optionale Attribute | |
|
|
Inhalt | |
Das Element <xsl:with-param> kann leer sein oder eine XSLT-Vorlage enthalten. Enthält es eine XSLT-Vorlage, wird der Wert des Attributs select ignoriert. |
|
Übergeordnete Elemente | |
<xsl:apply-templates> und <xsl:call-template> |
|
Definition | |
XSLT-Abschnitt 11.6, Parameterübergabe an Templates |
|
Beispiel | |
Es folgt ein Stylesheet mit einer Reihe von Parametern. Beachten Sie, dass einige Parameter global sind und außerhalb des Stylesheets definiert wurden: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:param name="favoriteNumber" select="23"/> <xsl:param name="favoriteColor"/> <xsl:template match="/"> <xsl:value-of select="$newline"/> <xsl:value-of select="list/title"/> <xsl:value-of select="$newline"/> <xsl:variable name="listitems" select="list/listitem"/> <xsl:call-template name="processListitems"> <xsl:with-param name="items" select="$listitems"/> <xsl:with-param name="color" select="'yellow'"/> <xsl:with-param name="number" select="$favoriteNumber"/> </xsl:call-template> </xsl:template> <xsl:template name="processListitems"> <xsl:param name="items"/> <xsl:param name="color" select="'blue'"/> <xsl:for-each select="$items"> <xsl:value-of select="position()"/> <xsl:text>. </xsl:text> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:for-each> <xsl:value-of select="$newline"/> <xsl:text>Your favorite color is </xsl:text> <xsl:value-of select="$favoriteColor"/> <xsl:text>.</xsl:text> <xsl:value-of select="$newline"/> <xsl:text>The color passed to this template is </xsl:text> <xsl:value-of select="$color"/> <xsl:text>.</xsl:text> <xsl:value-of select="$newline"/> </xsl:template> </xsl:stylesheet> Zur Umwandlung dieses Dokuments wird das folgende Stylesheet verwendet: <?xml version="1.0"?> <list xml:lang="en"> <title>Albums I've bought recently:</title> <listitem>The Sacred Art of Dub</listitem> <listitem>Only the Poor Man Feel It</listitem> <listitem>Excitable Boy</listitem> <listitem xml:lang="sw">Aki Special</listitem> <listitem xml:lang="en-gb">Combat Rock</listitem> <listitem xml:lang="zu">Talking Timbuktu</listitem> <listitem xml:lang="jz">The Birth of the Cool</listitem> </list> Dieses Stylesheet enthält zwei globale Parameter, favoriteNumber und favoriteColor, und definiert einen Vorgabewert für favoriteNumber. Das Stylesheet leitet auch einen Parameter von der Vorlage match="/" an die Vorlage name="processListitems" weiter, der eine Knotenmenge enthält. Hier die Ergebnisse der Transformation: Albums I've bought recently: 1. The Sacred Art of Dub 2. Only the Poor Man Feel It 3. Excitable Boy 4. Aki Special 5. Combat Rock 6. Talking Timbuktu 7. The Birth of the Cool Your favorite color is orange. The color passed to this template is yellow. Um mit Xalan diese Ergebnisse zu erzielen, verwenden Sie den folgenden Befehl: java org.apache.xalan.xslt.Process -in test4.xml -xsl with-param.xsl -param favoriteColor orange Der Befehl sollte in einer Zeile erscheinen. Im Abschnitt 4.4.3 in Kapitel 4 finden Sie eine vollständige Erläuterung globaler Parameter und wie Sie diese für verschiedene XSLT-Prozessoren definieren. |