Elemento <xsl:variable> di XSLT
Definizione e utilizzo
L'elemento <xsl:variable> viene utilizzato per dichiarare variabili locali o globali.
Commento:Se dichiarato come elemento principale, la variabile è globale, mentre se dichiarato all'interno di un template, la variabile è locale.
Commento:Una volta impostato il valore della variabile, non è possibile modificare o cambiare il valore!
Suggerimento:Puoi aggiungere un valore alla variabile tramite il contenuto dell'elemento <xsl:variable> o tramite l'attributo select!
Sintassi
<xsl:variable name="nome" select="espressione"> <!-- Contenuto:template --> </xsl:variable>
Proprietà
Proprietà | Valore | Descrizione |
---|---|---|
name | name | Obbligatorio. Specificare il nome della variabile. |
select | espressione | Opzionale. Definire il valore della variabile. |
Esempio
Esempio 1
Se è impostato l'attributo select, l'elemento <xsl:variable> non può contenere alcun contenuto. Se l'attributo select contiene una stringa di testo, la stringa deve essere racchiusa tra virgolette.
I due esempi seguenti assegnano il valore "red" alla variabile "color":
<xsl:variable name="color" select="'red'" />
<xsl:variable name="color" select='"red"' />
Esempio 2
Se l'elemento <xsl:variable> contiene solo l'attributo name e non ha contenuto, il valore della variabile è una stringa vuota:
<xsl:variable name="j" />
Esempio 3
Esempio: l'esempio seguente assegna il contenuto dell'elemento <xsl:variable> alla variabile "header":
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:variable name="header"> <tr> <th>Elemento</th> <th>Descrizione</th> </tr> </xsl:variable> <xsl:template match="/"> <html> <body> <table> <xsl:copy-of select="$header" /> <xsl:for-each select="reference/record"> <tr> <xsl:if category="XML"> <td><xsl:value-of select="element"/></td> <td><xsl:value-of select="description"/></td> </xsl:if> </tr> </xsl:for-each> </table> <br /> <table> <xsl:copy-of select="$header" /> <xsl:for-each select="table/record"> <tr> <xsl:if category="XSL"> <td><xsl:value-of select="element"/></td> <td><xsl:value-of select="description"/></td> </xsl:if> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>