<xsl:variable>-Element
Gibt einen in einem Ausdruck gebundenen Wert an.
<xsl:variable
name = QName
select = Expression
</xsl:variable>
Attribute
- name
Erforderlich. Der Qualifizierte Namen der Variablen.
- select
Der Wert des Attributs ist ein Ausdrücke, und der Wert der Variablen ist das Objekt, das sich aus der Auswertung des Ausdrucks ergibt. Wenn dieses Attribut angegeben wurde, muss der Inhalt von<xsl:variable>
leer sein.
Elementinformationen
Anzahl der Vorkommen |
Unbegrenzt |
Übergeordnete Elemente |
xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:for-each, xsl:if, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:stylesheetxsl:template, xsl:variable, xsl:when, xsl:with-param, Ausgabeelemente |
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, Ausgabeelemente |
Hinweise
Der Wert der Variablen kann ein Objekt beliebigen Typs sein, der durch einen Ausdruck zurückgegeben werden kann. Es gibt drei Möglichkeiten, um mithilfe des <xsl:variable>
-Elements den Wert der Variablen anzugeben:
Wenn das Element über ein
select
-Attribut verfügt, muss der Wert des Attributs ein Ausdruck sein. Der Wert der Variablen ist das Objekt, das sich aus der Auswertung des Ausdrucks ergibt. In diesem Fall muss der Inhalt des Elements leer sein.Wenn das Element kein
select
-Attribut aufweist und der Inhalt nicht leer ist, d. h. ein oder mehr untergeordnete Knoten enthält, gibt der Inhalt den Wert an. Der Inhalt ist eine Vorlage, die instanziiert wird, um den Wert des Parameters zu liefern. Der Wert ist ein Äquivalent des Ergebnisstrukturfragments für eine Knotengruppe, die nur einen einzigen Stammknoten enthält und als untergeordnete Elemente die Folge von Knoten aufweist, die beim Instanziieren der Vorlage generiert wurden. Der Basis-URI (Uniform Resource Identifier) der Knoten im Ergebnisstrukturfragment ist der Basis-URI des Variablenbindungselements.Wenn es sich bei einem Member der beim Instanziieren der Vorlage erstellten Knotenfolge um einen Attributknoten oder einen Namespaceknoten handelt, tritt ein Fehler auf, weil ein Stammknoten keinen Attributknoten oder Namespaceknoten als untergeordnetes Element aufweisen darf.
Wenn der Inhalt leer ist und kein
select
-Attribut aufweist, ist der Wert der Variablen eine leere Zeichenfolge. Demnach ist<xsl:variable name="x"/>
äquivalent mit
<xsl:variable name="x" select="''"/>
Wenn Knoten mithilfe einer Variablen anhand der Position ausgewählt werden, sollten Sie Folgendes vermeiden:
<xsl:variable name="n">2</xsl:variable> ... <xsl:value-of select="item[$n]"/>
Dies gibt den Wert des ersten item-Elements aus, da die Variable "n" an das Ergebnisstrukturfragment gebunden wird; nicht an eine Zahl. Verwenden Sie stattdessen:
<xsl:variable name="n" select="2"/> ... <xsl:value-of select="item[$n]"/>
... oder:
<xsl:variable name="n">2</xsl:variable> ... <xsl:value-of select="item[number($n)]"/>