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>