Bài 5
XSL Style Sheets (phần
II)
Các lê ̣nh về điều kiê ̣n
Giống như trong ngôn ngữ lâ ̣p
triǹ h thông thường ta có các
instructions về điều kiê ̣n như IF,
SELECT CASE, ELSE .v.v.. để lựa
chọn, trong XSL ta có các lê ̣nh về
điều kiê ̣n như xsl:if, xsl:choose,
xsl:when, và xsl:otherwise. Khi
expression
của
Element xsl:if,
xsl:when, hay xsl:otherwise có tri ̣
s ố true , thi ̀ cái Template nằm bên
trong nó sẽ đươc̣ ta ̣o ra (instantiated).
Thường thường, nếu công viê ̣c thử
tính đơn giản ta dùng xsl:if. Nếu nó
hơi rắc rối vi ̀ tùy theo trường hơp̣ ta
phải làm những công tác khác nhau
thi ̀ ta dùng choose/when/otherwise.
Tri ̣ số của Attribute test của xsl:if và
xsl:when là một expression để tính.
Expression nầy có thể là một so sánh
hay một expression loa ̣i XPath. Kết
quả viê ̣c tính nầy sẽ là true nếu nó
trả về một trong các tri ̣ số sau đây:
Một bộ node có ít nhất một node
Một con số khác zero
Một mảnh (fragment) Tree
Một text string không phải là
trống rỗ ng (non-empty)
Để minh họa cách dùng các lê ̣nh
XSL về điều kiê ̣n ta sẽ dùng hồ sơ
nguồn tên catalog.xml sau đây:
<?xml version="1.0"?>
<catalog>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
5.95</price>
2000-12-16</publish_date>
<description>A former architect battles
corporate zombies, an evil sorceress, and her
own
childhood to become queen of the
world.</description>
</book>
<book id="bk107">
<author>Thurman, Paula</author>
<title>Splish Splash</title>
<genre>Romance</genre>
Khi ta dùng một trong hai method
nói trên, thâ ̣t ra object nguồn (source
object) không cần phải là một hồ sơ
đầy đủ. Nó có thể chỉ là một Node
của hồ sơ XML. Nếu nó chỉ là một
Node thi ̀ cái XSLT processor xem
tâ ̣p hơp̣ Node ấy, và các Nodes con
cháu của nó như một hồ sơ đầy đủ.
Tương tự như vâ ̣y, một object XSL
có thể là một file XSL đầy đủ, hay
chỉ là một Node bên trong một file
XSL.
Ba ̣n có thể tải về order.xml, order.xsl
và trang Web có JavaScript ta ̣i đây.
(còn tiếp)
Học XML
Vovisoft © 2000. All rights reserved.
Last Updated: 23
Webmaster
Dec 2003