Condividi tramite


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)]"/>
    

Vedere anche

Riferimenti

Elemento <xsl:param>