XML: Phần tử if
Giải phóng thời gian, khai phóng năng lực
Phần tử if là một phần tử dùng để kiểm tra điều kiện của một biểu thức logic, nếu biểu thức logic có fía trị true thì các phần tử bên trong phần tử if sẽ được thực hiện và ngược lại thì không (cách làm việc của nó cũng giống như câu lệnh if trong các ngôn ngữ lập trình khác). Phần tử này có thuộc tính tên là test, thuộc tính này chứa biểu thức điều kiện. Biểu thức này có thể là một biểu thức so sánh hoặc một biểu thức XPath, kết quả là true khi kết quả của biểu thức nhận một trong các giá trị sau:
- Một nút có ít nhất một nút
- Một con số khác không
- Một mảnh cây
- Một chuỗi không phải là rỗng
Ví dụ:
Tài liệu XSL lưu với tên test.xsl:
1 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
2 <xsl:output method = "text" />
3 <xsl:template match = "BBB | CCC" >
4 <xsl:if test = "position()=1" >
<xsl:value-of select = "name()" />
<xsl:text > : </xsl:text>
</xsl:if>
5 <xsl:value-of select = "." />
6 </xsl:template>
</xsl:stylesheet>
Phần XML:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="test.xsl" ?> <AAA> <BBB bbb="111">B-1</BBB> <BBB bbb="222">B-2</BBB> <CCC>222</CCC> <CCC>333</CCC> <CCC>111</CCC> </AAA>
Kết quả hiển thị trên trình duyệt
BBB : B-1 B-2 222 333 111
Giải thích ví dụ:
Dòng 3: Dùng dể chỉ ra node khởi đầu của quá trình trích dữ liệu là node BBB hoặc CCC.
Dòng 4: Kiểm tra xem node hiện tại có phải là node thứ 1 hay không, nếu là node có vị trí 1 thì lấy tên của node này và dấu “:” và ngược lại thì không.
Dòng 5: Lấy nội dung của node hiện thời.
Giải phóng thời gian, khai phóng năng lực