XSLT <xsl:variable>-elementti

Määrittely ja käyttö

<xsl:variable>-elementti käytetään paikallisten tai globaalien muuttujien määrittämiseen.

Huomautus:Jos muuttuja on määritelty korkeimmalla tasolla, se on globaali, mutta jos se määritellään mallissa, se on paikallinen.

Huomautus:Kun olet asettanut muuttujan arvon, sitä ei voi muuttaa tai muokata!

Vinkki:Voit lisätä arvoja muuttujaan <xsl:variable>-elementin sisällön tai select-ominaisuuksien avulla!

Syntaksi

<xsl:variable
name="name"
select="expression">
  <!-- Content: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, tekstituloksen on oltava lainausmerkeissä.

Alla olevat esimerkit 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>Element</th>
  <th>Description</th>
  </xsl:if>
</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>
  <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>