Bài giảng Chương 4: XSL ngôn ngữ định kiểu mở rộng được biên soạn nhằm trang bị cho các bạn những kiến thức về XSL; cách tạo tài liệu XSLT; XSL nâng cao. Bài giảng phục vụ cho các bạn chuyên ngành Công nghệ thông tin và những bạn quan tâm tới lĩnh vực này.
Trang 1Gi ng viên: Nguy n c C ng
Trang 2! "# $ %&' (( $ ! & )* !+ ,'-.!&, /
Trang 3! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1
XSLFO (XSL Formating Object):ngôn ng XSL
d ng tài li u cho phong phú và a d ng h n nh font
ch , màu s c, hình nh
Ghi chú: XSLFO có ch c n ng t ng t CSS nh ng ch a
c linh ng và uy n chuy n nên ta ch s d ng XSLT
Trang 4! "# $ %&' (( $ ! & )* !+ ,'-.!&,
Trang 5! "# $ %&' (( $ ! & )* !+ ,'-.!&, 8
Trang 6! "# $ %&' (( $ ! & )* !+ ,'-.!&, =
> <5 ?( @6<AB
n i kh " i u tài li u chuy n d ch.
giá tr thu c tính c a tag.
d li u chu # i v $ n b n ghi chú tên c a ph n t th % và t & p các ph n t con
gi a th % óng và th % m " n u có.
gi chu # i nh danh URI c a không gian tên
gi n i dung chu # i ch ' th x lý ã lo i b ( hai ký
Trang 7! "# $ %&' (( $ ! & )* !+ ,'-.!&, C
Trang 8! "# $ %&' (( $ ! & )* !+ ,'-.!&, L
Trang 9! "# $ %&' (( $ ! & )* !+ ,'-.!&, M
Trang 10! "# $ %&' (( $ ! & )* !+ ,'-.!&, RS
Trang 11! "# $ %&' (( $ ! & )* !+ ,'-.!&, RR
Thu c tính mode, s d ng khi mu n x lý cùng m t
ph n nh ng trong các template khác nhau
Chú ý: c n ph i có ít nh t m t template trong toàn b tài
li u c a chúng ta
Trang 12! "# $ %&' (( $ ! & )* !+ ,'-.!&, R/
Trang 13! "# $ %&' (( $ ! & )* !+ ,'-.!&, R1
Trang 14! "# $ %&' (( $ ! & )* !+ ,'-.!&, R
Trang 15! "# $ %&' (( $ ! & )* !+ ,'-.!&, R8
Trang 16! "# $ %&' (( $ ! & )* !+ ,'-.!&, R=
Trang 17! "# $ %&' (( $ ! & )* !+ ,'-.!&, RC
Trang 18! "# $ %&' (( $ ! & )* !+ ,'-.!&, RL
Trang 19! "# $ %&' (( $ ! & )* !+ ,'-.!&, RM
Trang 20! "# $ %&' (( $ ! & )* !+ ,'-.!&, /S
Trang 21! "# $ %&' (( $ ! & )* !+ ,'-.!&, /R
Trang 22! "# $ %&' (( $ ! & )* !+ ,'-.!&, //
Trang 23! "# $ %&' (( $ ! & )* !+ ,'-.!&, /1
Cú pháp:
<xsl:choose>
<xsl:when test=“bi u th c”>….</xsl:when>
<xsl:when test=“bi u th c”>….</xsl:when>
Trang 24! "# $ %&' (( $ ! & )* !+ ,'-.!&, /
^ %_'
Giá tr c a thu c tính test là m t bi u th c so
K t qu c a bi u th c là true khi nó tr v m t trong các giá tr sau:
Trang 25! "# $ %&' (( $ ! & )* !+ ,'-.!&, /8
<xsl:when test="@Price < 5">Catagory A</xsl:when>
<xsl:when test=“@Price < 5.5">Catagory B</xsl:when>
<xsl:when test="@Price > 5.5">Catagory </xsl:when>
</xsl:choose> </p>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Trang 26! "# $ %&' (( $ ! & )* !+ ,'-.!&, /=
Trang 27! "# $ %&' (( $ ! & )* !+ ,'-.!&, /C
Trang 28! "# $ %&' (( $ ! & )* !+ ,'-.!&, /L
`E Va %b, E%c *Z
các node
i s th 2
Trang 29! "# $ %&' (( $ ! & )* !+ ,'-.!&, /M
Trang 30! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1S
TUV.V&FEX
Cú pháp:
<xsl:sort select = “Xpath” order=“O_Type” data-type/>
Trong ó:
order ->ki u s p x p: descending, accending
data-type ->ki u d li u thao tác: text, number
Ý ngh * a:
Trang 31! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1R
Trang 32! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1/
Trang 33! "# $ %&' (( $ ! & )* !+ ,'-.!&, 11
Trang 34! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1
Trang 35! "# $ %&' (( $ ! & )* !+ ,'-.!&, 18
Trang 36! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1=
Trang 37! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1C
Trang 38! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1L
Trang 39! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1M
Y *Z TUV.'EEF-nE)X
<?xml version="1.0" encoding="UTF-16"?>
<Magazine Publisher="Penton" Price="5.95">
<Title>SQL Server magazine</Title>
</Magazine>
<Magazine Publisher="CMP" Price="4.95">
<Title>Web Techniques</Title>
</Magazine>
<Magazine Publisher="Sys-con media" Price="4.99">
<Title>Wireless Business and Technology</Title>
</Magazine>
<Magazine Publisher="CMP" Price="5.95">
<Title>MSDN</Title>
</Magazine>
Trang 40! "# $ %&' (( $ ! & )* !+ ,'-.!&, S
Trang 41! "# $ %&' (( $ ! & )* !+ ,'-.!&, R
jE Ik 0 TUV.!&,,)E X
<html>
<body>
<! Operator name is Perth Trams >
<! Operator name is The Perth Mint >
</body>
</html>
Trang 42! "# $ %&' (( $ ! & )* !+ ,'-.!&, /
Trang 43! "# $ %&' (( $ ! & )* !+ ,'-.!&, 1
Trang 44! "# $ %&' (( $ ! & )* !+ ,'-.!&,
Trang 45! "# $ %&' (( $ ! & )* !+ ,'-.!&, 8
p-j ]%q
L y giá tr c a bi n
<xsl:copy-of select=“$varName”/>
<xsl:value-of select=“$varName”/>
Trang 46! "# $ %&' (( $ ! & )* !+ ,'-.!&, =
Global: Khai báo ngoài các template
Trang 47! "# $ %&' (( $ ! & )* !+ ,'-.!&, C
Trang 48! "# $ %&' (( $ ! & )* !+ ,'-.!&, L
Trang 49! "# $ %&' (( $ ! & )* !+ ,'-.!&, M
O'F',)E)F
<xsl:template name="name">
First name: <xsl:value-of select="first"/>
Last name: <xsl:value-of select="last"/>
</xsl:template>
Trang 50! "# $ %&' (( $ ! & )* !+ ,'-.!&, 8S
First name: <xsl:value-of select="$first"/>
Last name: <xsl:value-of select="$last"/>
</xsl:template>
Trang 51! "# $ %&' (( $ ! & )* !+ ,'-.!&, 8R
Trang 52! "# $ %&' (( $ ! & )* !+ ,'-.!&, 8/