Chương 4: XSL ngôn ngữ định kiểu mở rộng
Bạn đang xem trước 20 trang tài liệu Chương 4: XSL ngôn ngữ định kiểu mở rộng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ging viên: Nguyn c Cng
Website:
Email: cuongnguyenduc@gmail.com
! "#$ %&'(( $ !&)*!+,'-. !&, /
0
I. GII THIU V XSL
II. T
O TÀI LIU XSLT
III. XSL nâng cao
! "#$ %&'(( $ !&)*!+,'-. !&, 1
2(34
XSL -> Extension Style Language
XSL chuyn d
liu ca xml ra dng html.
XSL chia làm hai loi:
XSLT (XSL Transformation):ngôn ng
XSL chuyên v
chuyn dch - thc hin vic rút trích d
liu XML a
vào khuôn dng HTML
XSLFO (XSL Formating Object):ngôn ng
XSL
chuyên v nh dng- cung cp các thuc tính nh
dng tài liu cho phong phú và a dng hn nh font
ch
, màu sc, hình nh
Ghi chú: XSLFO có chc nng tng t CSS nhng cha
c linh ng và uy n chuy n nên ta ch
s dng XSLT
! "#$ %&'(( $ !&)*!+,'-. !&,
(56(73
(
1. S chuyn i d
liu
2. Các loi nút (node) mà XSLT x lý c
3. Cu trúc tng quát file XSL
4. Mt s phn t XSL
5. Các lnh xsl
6. Mt s hàm thông dng
7. Thao tác trên file xsl
! "#$ %&'(( $ !&)*!+,'-. !&, 8
9 :;< 3
D liu u
vào(tài liu
XML cn
chuyn i)
B x lý XSL
D liu u ra(
tài liu kt qu
c hin th)
XSL stylesheet
CU TRÚC CÂY CU TRÚC CÂY
T P H!P CÁC
NODE
! "#$ %&'(( $ !&)*!+,'-. !&, =
><5?(@6<AB
ni kh"i u tài liu chuyn dch.
giá tr thuc tính ca tag.
d
liu chu#i v$n bn ghi chú
tên ca phn t th% và t&p các phn t con
gi
a th% óng và th% m" nu có.
gi
chu#i nh danh URI ca không gian tên
gi
ni dung chu#i ch' th x lý ã loi b( hai ký
t nh dng là .
d
liu text n)m gi
a th% óng và th% m"
1. Document root (Nút gc)
2. Attribute (Thuc tính)
3. Comment (Chú thích)
4. Element (Phn t)
5. Namespace (không gian tên)
6. Pocessing instructor (Ch th x lý)
7. Text (v
n bn)
Có 7 loi nút mà b x lý XSL nh
n dng và x lý c là:
! "#$ %&'(( $ !&)*!+,'-. !&, C
D EFG! EHIJE K-.)
<xsl:stylesheet version=“1.0”
xmlns:xsl=“ w3. org/TR/WD-xsl”|
xmlns:xsl=“”>
<!- - Các phn t XSL
- ->
! "#$ %&'(( $ !&)*!+,'-. !&, L
D EFG! EHIJE K-.)
NHÚNG TÀI LIU XSLT VÀO TÀI LIU XML
<?xml-stylesheet type="text/xsl" href=“ng
dn n file xsl"?>
! "#$ %&'(( $ !&)*!+,'-. !&, M
(N OP(Q
(
Template
Apply-templates
value-of
sort
copy-of
copy
! "#$ %&'(( $ !&)*!+,'-. !&, RS
TUV.E),W.'E)X
Cú pháp:
! "#$ %&'(( $ !&)*!+,'-. !&, RR
TUV.E),W.'E)X@EEB
Ý ngh*a:
Template là nn tng ca kin trúc lu&t c bn mà XSLT
s dng
S dng template ni dung trong ó xut hin nh mt
ngõ xut
Các thuc tính ca template:
Thuc tính match
Thuc tính name
Thuc tính mode, s dng khi mun x lý cùng mt
phn nhng trong các template khác nhau.
Chú ý: cn phi có ít nht mt template trong toàn b tài
liu ca chúng ta.
! "#$ %&'(( $ !&)*!+,'-. !&, R/
TUV.'WW.0E),W.'E)VX
Cú pháp:
Ví d:
! "#$ %&'(( $ !&)*!+,'-. !&, R1
TUV.'WW.0E),W.'E)VX@EEB
Ý ngh*a:
c dùng bên trong mt template.
nh ngh*a mt t&p các node c x lý.
X lý bt k+ template ‘con’ (phn t con ca phn t ang
xét).
Kt hp thuc tính select x lý node c th
! "#$ %&'(( $ !&)*!+,'-. !&, R
TUV.'WW.0E),W.'E)VX
! "#$ %&'(( $ !&)*!+,'-. !&, R8
Y *ZTUV.'WW.0E),W.'E)VX
<xsl:stylesheet version="1.0"
xmlns:xsl=""
xmlns:fo="">
! "#$ %&'(( $ !&)*!+,'-. !&, R=
TUV.['.)0&KX
Cú pháp:
Ví d:
(bài t&p s 1)
Ly giá tr ti nút OperatorName
Tng t ti nút th 2
! "#$ %&'(( $ !&)*!+,'-. !&, RC
Y *Z['.)0&K
<xsl:stylesheet version="1.0"
xmlns:xsl=""
xmlns:fo="">
Lien lac:
! "#$ %&'(( $ !&)*!+,'-. !&, RL
SQL Server magazine
Penton
Web Techniques
CMP
Wireless Business and Technology
Sys-con media
MSDN
CMP
! "#$ %&'(( $ !&)*!+,'-. !&, RM
>3
! "#$ %&'(( $ !&)*!+,'-. !&, /S
TUV.-KX
Cú pháp:
Khi lnh
Ý ngh*a:
Ví d:
! "#$ %&'(( $ !&)*!+,'-. !&, /R
Y *ZTUV.-K X
<xsl:stylesheet version="1.0"
xmlns:xsl="" >
5">
chu de:
! "#$ %&'(( $ !&)*!+,'-. !&, //
TUV.\%)X
Cú pháp:
Khi lnh thc hin
Ý ngh*a
Ví d:
! "#$ %&'(( $ !&)*!+,'-. !&, /1
TUV.!%&&V)X]TUV.\%)X
Cú pháp:
.
.
.
Ý ngh*a
Ví d
! "#$ %&'(( $ !&)*!+,'-. !&, /
^%_'
Giá tr ca thuc tính test là mt biu thc so
sánh ho,c mt Xpath.
Kt qu ca biu thc là true khi nó tr v mt
trong các giá tr sau:
Mt con s khác zero
Mt b node có ít nht mt node
Mt mnh (fragment) Tree
Mt text string không phi là trng r#ng (non-
empty
! "#$ %&'(( $ !&)*!+,'-. !&, /8
Y *ZTUV.!%&&V)X]TUV.\%)X
-
Catagory A
Catagory B
Catagory
! "#$ %&'(( $ !&)*!+,'-. !&, /=
TUV.K&F0)'!%X
Cú pháp:
ni dung cn l,p
Ý ngh*a:
Ví d
! "#$ %&'(( $ !&)*!+,'-. !&, /C
Y *ZTUV.K&F0)'!%X
<xsl:stylesheet version="1.0"
xmlns:xsl=""
Lien he:
! "#$ %&'(( $ !&)*!+,'-. !&, /L
`E Va %b, E%c*Z
position(): V trí ca node hin hành trong t&p
các node
text(): Phn v$n bn (ni dung) ca mt phn t
last(): V trí ca node cui cùng trong t&p node
count(): s node trong t&p node
contains(): tr v true nu i s u tiên cha
i s th 2
starts-with(): tr v true nu i s th nht bt
u v-i i s th 2
! "#$ %&'(( $ !&)*!+,'-. !&, /M
J! E%'& EJ! EFd K-.)U,.
sort
copy
copy-of
attribute
element
Comment
! "#$ %&'(( $ !&)*!+,'-. !&, 1S
TUV.V&FEX
Cú pháp:
Trong ó:
order ->kiu sp xp: descending, accending
data-type ->kiu d
liu thao tác: text, number
Ý ngh*a:
Sp xp d
liu u ra
! "#$ %&'(( $ !&)*!+,'-. !&, 1R
TUV.!&W0&K X
Cú pháp:
Ý ngh*a:
Sao chép mt phn cây gc – cây kt qu
! "#$ %&'(( $ !&)*!+,'-. !&, 1/
Y *ZTUV.!&W0&KX
<xsl:stylesheet version="1.0"
xmlns:xsl="" >
-->
! "#$ %&'(( $ !&)*!+,'-. !&, 11
TUV.!&W X
Cú pháp:
Ý ngh*a:
Sao chép mt phn cây gc – cây kt qu
! "#$ %&'(( $ !&)*!+,'-. !&, 1
Y *ZEH%eW $ Ef& !ghi F'
! "#$ %&'(( $ !&)*!+,'-. !&, 18
TUV.).),)E X
Cú pháp:
Ni dung phn t
Ý ngh*a:
To phn t m-i trên cây kt qu
! "#$ %&'(( $ !&)*!+,'-. !&, 1=
Y *ZTUV.).),)E X
<xsl:stylesheet version="1.0"
xmlns:xsl="">
! "#$ %&'(( $ !&)*!+,'-. !&, 1C
jE Ik 0 Ef& W%i El ,m-
Kt qu nh sau:
SQL Server magazine
Web Techniques
Wireless Business and
Technology
MSDN
! "#$ %&'(( $ !&)*!+,'-. !&, 1L
TUV.'EEF-nE) X
Cú pháp:
Giá tr thuc tính
Ý ngh*a:
To thuc tính cho cây u ra
! "#$ %&'(( $ !&)*!+,'-. !&, 1M
Y *ZTUV.'EEF-nE)X
SQL Server magazine
Web Techniques
Wireless Business and Technology
MSDN
! "#$ %&'(( $ !&)*!+,'-. !&, S
Y *ZUV.!&,,)E
Operator name is
! "#$ %&'(( $ !&)*!+,'-. !&, R
jE Ik 0 TUV.!&,,)E X
! "#$ %&'(( $ !&)*!+,'-. !&, /
(f& oUDE
<xsl:output method="xml | html | text"
omit-xml-declaration="yes or no“
cdata-section-elements="CDATA sections"
indent="yes or no"/>
Ý ngh*a:
Xut source tree -> result tree (xml|html|text)
Chú ý:
Phi là con trc tip ca
! "#$ %&'(( $ !&)*!+,'-. !&, 1
g!'&
Bin, h)ng (variable, constant)
Binding (ràng buc)
,t tên cho templates (named templates)
Tham s (parameter)
! "#$ %&'(( $ !&)*!+,'-. !&,
p-j]%q
Khai báo:
constant
S dng:$VariableName
Chú ý:
Không c tham chiu t-i bn thân bin ó.
! "#$ %&'(( $ !&)*!+,'-. !&, 8
p-j]%q
Ly giá tr ca bin
! "#$ %&'(( $ !&)*!+,'-. !&, =
p-*-@Fbn`!B
Global: Khai báo ngoài các template
Local: thuc mt template
Ví d:
30
Fred
! "#$ %&'(( $ !&)*!+,'-. !&, C
p-*-
Fred
Barney
Câu h(i:
ly giá tr ca bin
“name” nào?
! "#$ %&'(( $ !&)*!+,'-. !&, L
',)*(),W.'E)
To:
Ni dung
S dng:
Ý ngh*a:
Chèn ni dung vào l.i g/i temp
! "#$ %&'(( $ !&)*!+,'-. !&, M
O'F',)E)F
Vn ,t ra:
First name:
Last name:
! "#$ %&'(( $ !&)*!+,'-. !&, 8S
O'F',)E)F
Khai báo:
Value
Ví d:
<xsl:value-of
select="first"/>
First name:
Last name:
! "#$ %&'(( $ !&)*!+,'-. !&, 8R
O'F',)E)F
Truyn tham s
value
! "#$ %&'(( $ !&)*!+,'-. !&, 8/
(rW E-,s
SaiGon Tourist
Tham quan min Tây
La Vit Tourist
Tun Châu - H Long
Các file đính kèm theo tài liệu này:
- chuong_xslt_5754_1802999.pdf