XSLT <xsl:variable> elemento
Paglilingkuran at paggamit
<xsl:variable> elemento ay ginagamit upang ideklarang lokal o pangkalahatan na variable.
Komentaryo:Kung idineklarang pangunahing elemento, ang variable na ito ay pangkalahatan, at kung idineklarang sa template, ang variable ay lokal.
Komentaryo:Kapag iyong nagset ang halaga ng variable, hindi na ito mababago o maipili!
Paalala:Maaari mong magdagdag ng halaga sa variable sa pamamagitan ng nilalaman ng elemento <xsl:variable> o sa pamamagitan ng attribute ng select!
Mga pangunahing sintaksis
<xsl:variable name="name" select="expression"> <!-- Content:template --> </xsl:variable>
Attribute
Attribute | Halaga | Paglalarawan |
---|---|---|
name | name | Hindi opisyal. Paglalarawan ng pangalan ng variable. |
select | expression | Opisyal. Paglalarawan ng halaga ng variable. |
Sample
Halimbawa 1
Kung ang attribute ng select ay na-set, ang elemento <xsl:variable> ay hindi maaaring may anumang nilalaman. Kung ang attribute ng select ay may tekstrong string, dapat magbigay ng pagkakakaso sa string.
Ang dalawang halimbawa na ito ay nag-aasikaso ng pagkakatwiran ng variable "color" na may halaga "red":
<xsl:variable name="color" select="'red'" />
<xsl:variable name="color" select='"red"' />
Halimbawa 2
Kung ang elemento <xsl:variable> ay may lamang na attribute ng name at walang nilalaman, ang halaga ng variable ay walang laman:
<xsl:variable name="j" />
Halimbawa 3
Ang halimbawa na ito ay nag-aasikaso ng pagkakatwiran ng nilalaman ng elemento <xsl:variable> sa halip na para sa variable "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>Description</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>