<xsl:param> |
Diese Anweisung definiert den Namen und Wert des von einer Vorlage zu verwendenden Parameters. Dieses Element kann in der obersten Ebene vorkommen oder innerhalb des Elements <xsl:template>. Erscheint <xsl:param> in der obersten Elementebene, handelt es sich um einen globalen Parameter, der für alle Bereiche des Stylesheets sichtbar ist. Es gibt zwei Methoden, um den Wert des Parameters zu definieren: Er kann im Attribut select angegeben oder über eine XSLT-Vorlage im Element <xsl:param> definiert werden.
Kategorie
Anweisung
Obligatorische Attribute
name Dieses Attribut definiert den Namen dieses Parameters.
Optionale Attribute
select Ein XPath-Ausdruck, der den Wert dieses Parameters definiert.
Inhalt
Wird das Attribut select verwendet, sollte <xsl:param> leer sein. Andernfalls enthält es eine XSLT-Vorlage.
Übergeordnete Elemente
<xsl:stylesheet> und <xsl:template>. Wenn <xsl:param> dem Element <xsl:stylesheet> untergeordnet ist, handelt es sich um einen globalen Parameter, der im gesamten Stylesheet sichtbar ist. Die XSLT-Spezifikation legt nicht fest, wie globale Parameter an den XSLT-Prozessor zu übergeben sind. Dazu sollten Sie die Dokumentation Ihres Prozessors lesen. (Im Abschnitt 4.4.3 in Kapitel 4 finden Sie eine Übersicht dazu, wie Sie Parameter an die am häufigsten eingesetzten XSLT-Prozessoren übergeben.)
Definition
XSLT-Abschnitt 11, Variablen und Parameter
Beispiel
Es folgt ein Stylesheet, das mehrere <xsl:param>-Elemente definiert, sowohl globale als auch lokale. Beachten Sie, dass einer dieser Parameter eine Knotenmenge ist. Parameter können jeden XPath- oder XSLT-Datentyp annehmen.
    <?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>
Dieses Stylesheet wird zur Umwandlung des folgenden Dokuments verwendet:
    <?xml version="1.0"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>
      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
Hier die Ergebnisse:
    A few of my favorite albums
    1.  A Love Supreme
    2.  Beat Crazy
    3.  Here Come the Warm Jets
    4.  Kind of Blue
    5.  London Calling
    6.  Remain in Light
    7.  The Joshua Tree
    8.  The Indestructible Beat of Soweto

    Your favorite color is purple.
    The color passed to this template is yellow.
Um diese Ergebnisse zu erzeugen, wurde der Wert purple an den XSLT-Prozessor übergeben. Mit Xalan wird der Wert wie folgt übergeben:
    java org.apache.xalan.xslt.Process -in test4.xml -xsl param.xsl
      -param favoriteColor purple
(Der Befehl sollte in eine Zeile eingegeben werden.) Im Abschnitt 4.4.3 in Kapitel 4 finden Sie eine vollständige Erläuterung globaler Parameter und wie sie für verschiedene XSLT-Prozessoren gesetzt werden.