XSLT <xsl:variable>-elementet
Definition og brug
<xsl:variable>-elementet bruges til at erklære lokale eller globale variabler.
Kommentar:Hvis variablen er erklæret som en topnøgle, er den global, mens den er lokal, hvis den er erklæret i en skabelon.
Kommentar:Når du har sat værdien af en variabel, kan du ikke ændre eller ændre denne værdi!
Tip:Du kan tilføje værdi til en variabel ved hjælp af indholdet af <xsl:variable> elementet eller gennem select egenskaben!
Syntaks
<xsl:variable name="navn" select="udtryk"> <!-- Indhold:template --> </xsl:variable>
Egenskab
Egenskab | Værdi | Beskrivelse |
---|---|---|
navn | navn | Obligatorisk. Angiv variabelens navn. |
select | udtryk | Valgfri. Definer variabelens værdi. |
Eksempel
Eksempel 1
Hvis der er sat en select egenskab, kan <xsl:variable> elementet ikke indeholde nogen indhold. Hvis select egenskaben indeholder en tekststreng, skal strengen sættes i anførsel.
Disse to eksempler tildeler variablen "color" værdien "red":
<xsl:variable name="color" select="'red'" />
<xsl:variable name="color" select='"red"' />
Eksempel 2
Hvis <xsl:variable> elementet kun indeholder et name attribut og ingen indhold, er variabelens værdi en tom streng:
<xsl:variable name="j" />
Eksempel 3
Dette eksemplet bruger indholdet af <xsl:variable> elementet til at tildelle variablen "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>Element</th> <th>Beskrivelse</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>