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>