Thẻ <xsl:variable> trong XSLT

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

Thẻ <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: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ị đó!

Hướng dẫn:}}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!

cú pháp

<xsl:variable
tên="tên"
chọn="bày tỏ">
  <!-- Nội dung:template -->
</xsl:variable>

thuộc tính

thuộc tính giá trị mô tả
tên tên bắt buộc. Định nghĩa tên của biến.
chọn bày tỏ 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ì chuỗi văn bản phải được đặt 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ụ về việc gán giá trị cho biến "header" bằng nội dung của phần tử <xsl:variable>:

<?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ều kiện</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>