Elemento <xsl:variable>
Specifica un valore associato in un'espressione.
<xsl:variable
name = QName
select = Expression
</xsl:variable>
Attributi
nome
Obbligatorio. Il Nomi completi (XSLT) della variabile.SELECT
Il valore dell'attributo è un'Espressioni (XSLT) e il valore della variabile è l'oggetto che risulta dalla valutazione dell'espressione. Quando viene specificato questo attributo, il contenuto di <xsl:variable> deve essere vuoto.
Informazioni sull'elemento
Numero di occorrenze |
Illimitato |
Elementi padre |
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, elementi di output |
Elementi figlio |
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, elementi di output |
Note
Il valore della variabile può essere un oggetto di qualsiasi tipo restituito da un'espressione. L'elemento <xsl:variable> può specificare il valore della variabile in tre possibili modi:
Se l'elemento presenta un attributo select, il valore dell'attributo deve essere un'espressione e il valore della variabile è l'oggetto risultante dalla valutazione dell'espressione. In questo caso il contenuto dell'elemento deve essere vuoto.
Se l'elemento non dispone di un attributo select e dispone di contenuto non vuoto, ad esempio di uno o più nodi figlio, il contenuto specifica il valore. Il contenuto è un modello di cui è stata creata un'istanza per specificare il valore della variabile. Il valore è un frammento di albero risultato equivalente a un set di nodi contenente un singolo nodo radice i cui nodi figlio sono la sequenza di nodi prodotta creando un'istanza del modello. L'URI di base dei nodi nel frammento di albero risultato è l'URI di base dell'elemento variable-binding.
Si verifica un errore se un membro della sequenza dei nodi prodotta dalla creazione di un'istanza del modello è un nodo Attribute o un nodo dello spazio dei nomi in quanto un nodo radice non può disporre di un nodo Attribute o di un nodo dello spazio dei nomi come nodo figlio.
Se il contenuto è vuoto e non presenta un attributo select, il valore della variabile è una stringa vuota. Pertanto
<xsl:variable name="x"/>
equivale a
<xsl:variable name="x" select="''"/>
Se si utilizza una variabile per selezionare i nodi in base alla posizione, fare attenzione a non utilizzare:
<xsl:variable name="n">2</xsl:variable> ... <xsl:value-of select="item[$n]"/>
Non verrà generato un numero, bensì il valore del primo elemento item, perché la variabile "n" sarà associata al frammento di albero risultato. Al suo posto, utilizzare:
<xsl:variable name="n" select="2"/> ... <xsl:value-of select="item[$n]"/>
... oppure:
<xsl:variable name="n">2</xsl:variable> ... <xsl:value-of select="item[number($n)]"/>