Khi expression của Element xsl:if, xsl:when, hay xsl:otherwise có tri ̣ s ố true, thì cái Template nằm bên... Expression nầy có thể là mô ̣t so sánh hay mô ̣t expression loa ̣
Trang 3Bà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 trình thông thường ta có các instructions về điều kiê ̣n như IF, SELECT CASE, ELSE v.v để lựa cho ̣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, thì cái Template nằm bên
Trang 4trong 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 vì tùy theo trường hơ ̣p ta phải làm những công tác khác nhau
thì 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à
Trang 5trống rỗng (non-empty)
Để minh ho ̣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 >
< price > 5.95 </ price >
< publish_date > 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 >
Trang 6Khi 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 thì 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)
Trang 7Ho ̣c XML
Vovisoft © 2000 All rights reserved Last Updated: 23