<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 |
|
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:
Dies ist die Prozessorausgabe:
<?xml version="1.0" encoding="UTF-16"?>