<xsl:with-param>-Element

Übergibt einen Parameter an eine Vorlage.

<xsl:with-param
  name = QName
  select = Expression
</xsl:with-param>

Attribute

  • Name
    Erforderlich. Der Qualifizierte Namen (XSLT) des Parameters.

  • select
    Der Ausdrücke (XSLT), der mit dem aktuellen Kontext verglichen werden soll. Es ist kein Standardwert vorhanden. Wenn kein Inhalt vorhanden ist, wird eine leere Zeichenfolge generiert.

Elementinformationen

Anzahl der Vorkommen

Unbegrenzt

Übergeordnete Elemente

xsl:apply-templates, xsl:call-template

Untergeordnete Elemente

xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable

Hinweise

Das name-Attribut ist erforderlich. Es gibt den Namen des Parameters an. Der Parameter stellt die Variable des Werts dar, dessen Bindung ersetzt werden soll.

Das <xsl:with-param>-Element ist sowohl in <xsl:call-template> als auch <xsl:apply-templates> zulässig.

Der Wert des Parameters wird auf dieselbe Weise angegeben wie für <xsl:variable> und <xsl:param>.

Der aktuelle Knoten und die aktuelle Knotenliste zum Berechnen des vom <xsl:with-param>-Element angegeben Werts entsprechen denen, die für das <xsl:apply-templates> oder <xsl:call-template>-Element verwendet werden, in dem er auftritt.

Wenn ein Parameter x an eine Vorlage übergeben wird, die über kein <xsl:param>-Element für x verfügt, dann ist dies kein Fehler. Der Parameter wird lediglich ignoriert.

Beispiel

Ein Stylesheet kann die folgenden Vorgehensweise verwenden, um lokalisierte Meldungszeichenfolgen aufzurufen.

Die Meldungen einer Sprache somelanguage werden wie in der unten dargestellten Beispiel-XML-Datei in einer XML-Datei resources/languageabbreviation.xml gespeichert.

XML-Datei (app.xml)

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="showlocmsg.xsl" ?>
<showmsg>
   <msg23/>
</showmsg>

XML-Ressourcendatei (resources/en.xml)

<?xml version='1.0'?>
<messages>
  <message name="msg23">Error 23: The drive is full.</message>
  <message name="msg42">Error 42: The file is not found.</message>
</messages>

XSLT-Datei (showlocmsg.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- These 2 elements effectively assign
     $messages = resources/en.xml/<messages>,
     then $messages is used in the "localized-message" template.  -->
<xsl:param name="lang">en</xsl:param>
<xsl:variable name="messages"
      select="document(concat('resources/', $lang, '.xml'))/messages"/> 

<xsl:template name="msg23" match="msg23">
  <xsl:call-template name="localized-message">
    <xsl:with-param name="msgcode">msg23</xsl:with-param>
  </xsl:call-template>
</xsl:template>

<xsl:template name="localized-message">
  <xsl:param name="msgcode"/>
  <!-- Show message string. -->
  <xsl:message terminate="yes">
    <xsl:value-of select="$messages/message[@name=$msgcode]"/>
  </xsl:message>
</xsl:template>

</xsl:stylesheet>

Ausgabe

Dies ist die formatierte Ausgabe:

Beispielausgabe:

Dies ist die Prozessorausgabe:

<?xml version="1.0" encoding="UTF-16"?>

Siehe auch

Referenz

<xsl:call-template>-Element

<xsl:variable>-Element

<xsl:param>-Element

<xsl:template>-Element