XML: Phần tử điều khiển choose
Giải phóng thời gian, khai phóng năng lực
choose là phần tử điều khiển chọn lựa, nó làm việc giống như câu lệnh switch trong của một số ngôn ngữ lập trình. Các chọn lựa trong phần tử điều khiển choose là các phần tử xsl:when (giống như case trong trong câu lệnh switch của ngôn ngữ C) và phần tử xsl:otherwise (Giống như default trong câu lệnh switch của ngôn ngữ C).
Phần tử choose không có thuộc tính, phần tử xsl:when có một thuộc tính test, giá trị của nó là một biểu thức, phần tử xsl:otherwise không có thuộc tính.
Để dễ hiểu hơn chúng ta xem ví dụ sau:
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" >
<xsl:output method = "text" />
2 <xsl:template match = "BBB" >
3 <xsl:choose >
4 <xsl:when test = ".=7" >
<xsl:text >test=7</xsl:text>
</xsl:when>
5 <xsl:when test = ".=5" >
<xsl:text >test=5</xsl:text>
</xsl:when>
6 <xsl:otherwise >
<xsl:text >otherwise</xsl:text>
</xsl:otherwise>
7 </xsl:choose>
8 </xsl:template>
</xsl:stylesheet>
Phần XML:
<?xml version ="1.0"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<AAA >
<BBB>10 </BBB>
<BBB>5 </BBB>
<BBB>7 </BBB>
</AAA>
Kết quả hiển thị trên trình duyệt:
otherwise
test=5
test=7
Giải thích ví dụ:
Dòng 2: Chỉ định node bắt đầu Dòng 3: Phần tử lựa chọn
Dòng 4: Kiểm tra xem giá trị của node hiện tại có bằng 7 hay không nếu bằng thì cho ra câu test=7
Dòng 5: Thự c hiện công vi ệc giống dòng 4 nhưng kiểm tra xem giá trị của node hiện tại có bằng 5 hay không, nếu bằng thì cho ra câu test=5
Dòng 6: Nếu hai điều kiện trên không thỏa thì cho ra câu ortherwise Kết quả:
Lần lượt đi qua 2 node BBB, đầu tiên là node có giá trị là 10 nên cho ra câu ortherwise tiếp đến đi qua node BBB thứ hai có giá trị là 5 nên cho ra câu test=5, cuối cùng là đi qua node BBB cuối cùng có giá trị là 7 nên cho ra câu test=7.
Giải phóng thời gian, khai phóng năng lực