XSLT <xsl:variable> elementti
Määrittely ja käyttö
<xsl:variable> elementti käytetään paikallisten tai globaalien muuttujien määrittämiseen.
Kommentti:Jos muuttuja on määritelty ylätasoisena elementtinä, se on globaali, mutta jos se määritellään mallissa, se on paikallinen.
Kommentti:Kun olet asettanut muuttujan arvon, sitä ei voi muuttaa tai muokata!
Vinkki:Voit lisätä arvon muuttujaan <xsl:variable> elementin sisällön tai select-ominaisuuden avulla!
Syntaksi
<xsl:variable name="name" select="expression"> <!-- Sisältö:template --> </xsl:variable>
Ominaisuus
| Ominaisuus | Arvo | Kuvaus |
|---|---|---|
| name | name | Välttämätön. Määritä muuttujan nimi. |
| select | expression | Valinnainen. Määritä muuttujan arvo. |
Esimerkki
Esimerkki 1
Jos on asetettu select-ominaisuus, <xsl:variable> elementti ei voi sisältää minkäänlaista sisältöä. Jos select-ominaisuus sisältää tekstituloksen, merkkijonon on annettava lainausmerkit.
Alla olevat kaksi esimerkkiä asettavat muuttujalle "color" arvon "red":
<xsl:variable name="color" select="'red'" />
<xsl:variable name="color" select='"red"' />
Esimerkki 2
Jos <xsl:variable> elementti sisältää vain name-ominaisuuden eikä sisällä sisältöä, muuttujan arvo on tyhjä merkkijono:
<xsl:variable name="j" />
Esimerkki 3
Esimerkki alla oleva <xsl:variable> elementti asettaa muuttujalle "header" arvon:
<?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>Elementti</th>
<th>Kuvaus</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>

