Phần tử <xsl:variable> trong XSLT

Định nghĩa và cách sử dụng

Phần tử <xsl:variable> được sử dụng để khai báo biến cục bộ hoặc toàn cục.

Chú thích:Nếu được khai báo là phần tử cấp cao nhất, biến đó là toàn cục, còn nếu được khai báo trong mẫu, biến đó là cục bộ.

Chú thích:Một khi bạn đã thiết lập giá trị của biến, bạn không thể thay đổi hoặc sửa đổi giá trị đó!

Lưu ý:Bạn có thể thêm giá trị vào biến bằng nội dung của phần tử <xsl:variable> hoặc bằng thuộc tính select!

Ngữ pháp

<xsl:variable
name="name"
select="expression">
  <!-- Nội dung:template -->
</xsl:variable>

Thuộc tính

Thuộc tính Giá trị Mô tả
name name Bắt buộc. Định nghĩa tên của biến.
select expression Tùy chọn. Định nghĩa giá trị của biến.

Mô hình

Ví dụ 1

Nếu đã thiết lập thuộc tính select, phần tử <xsl:variable> không thể chứa bất kỳ nội dung nào. Nếu thuộc tính select chứa chuỗi văn bản, thì phải đặt chuỗi trong dấu ngoặc kép.

Dưới đây là hai ví dụ gán giá trị "red" cho biến "color":

<xsl:variable name="color" select="'red'" />
<xsl:variable name="color" select='"red"' />

Ví dụ 2

Nếu phần tử <xsl:variable> chỉ bao gồm thuộc tính name và không có nội dung, thì giá trị của biến là chuỗi rỗng:

<xsl:variable name="j" />

Ví dụ 3

Dưới đây là ví dụ sử dụng nội dung của phần tử <xsl:variable> để gán giá trị cho biến "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>Đối tượng</th>
  <th>Mô tả</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>