(cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:7)(cid:8)(cid:9)(cid:7)(cid:10)(cid:11)(cid:12) (cid:5)(cid:6)(cid:13)(cid:5)(cid:7)(cid:5)(cid:6)(cid:14)(cid:7)(cid:15)(cid:16)(cid:5)(cid:2)(cid:7)(cid:17)(cid:18)(cid:19)(cid:20)(cid:7)(cid:21)(cid:22) (cid:23)(cid:24)(cid:5)(cid:6)
Gi(cid:1)ng viên: Nguy(cid:2)n (cid:3)(cid:4)c C(cid:5)(cid:6)ng Website: Email: http://www.nguyenduccuong.com cuongnguyenduc@gmail.com
(cid:10)(cid:11)(cid:12)(cid:7)0 (cid:5)(cid:6)(cid:13)(cid:5)(cid:7)(cid:5)(cid:6)(cid:14)(cid:7)(cid:15)(cid:16)(cid:5)(cid:2)(cid:7)(cid:17)(cid:18)(cid:19)(cid:20)(cid:7)(cid:21)(cid:22) (cid:23)(cid:24)(cid:5)(cid:6)
I. GI(cid:7)I THI(cid:8)U V(cid:9) XSL II. T(cid:10)O TÀI LI(cid:8)U XSLT III. XSL nâng cao
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/
(cid:6)(cid:18)2(cid:18)(cid:7)((cid:2)(cid:18)3(cid:20)(cid:7)(cid:25)4 (cid:10)(cid:11)(cid:12)
(cid:1) XSL -> Extension Style Language (cid:1) XSL (cid:11)(cid:12) chuy(cid:12)n d(cid:13) li(cid:14)u c(cid:15)a xml ra d(cid:16)ng html. (cid:1) XSL chia làm hai lo(cid:16)i:
(cid:2) XSLT (XSL Transformation):ngôn ng(cid:13) XSL chuyên v(cid:17) chuy(cid:12)n d(cid:18)ch - th(cid:19)c hi(cid:14)n vi(cid:14)c rút trích d(cid:13) li(cid:14)u XML (cid:11)(cid:5)a vào khuôn d(cid:16)ng HTML
(cid:2) XSLFO (XSL Formating Object):ngôn ng(cid:13) XSL
chuyên v(cid:17) (cid:11)(cid:18)nh d(cid:16)ng- cung c(cid:20)p các thu(cid:21)c tính (cid:11)(cid:18)nh d(cid:16)ng tài li(cid:14)u cho phong phú và (cid:11)a d(cid:16)ng h(cid:6)n nh(cid:5) font ch(cid:13), màu s(cid:22)c, hình (cid:1)nh
Ghi chú: XSLFO có ch(cid:1)c n(cid:2)ng t(cid:3)(cid:4)ng t(cid:5) CSS nh(cid:3)ng ch(cid:3)a
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1
(cid:6)(cid:3)(cid:7)c linh (cid:6)(cid:8)ng và uy(cid:9)n chuy(cid:9)n nên ta ch(cid:10) s(cid:11) d(cid:12)ng XSLT
(56(cid:7)(7(cid:18)(cid:7)(cid:12)(cid:18)3(cid:20)(cid:7)(cid:10)(cid:11)(cid:12)(
1. S(cid:6) (cid:11)(cid:23) chuy(cid:12)n (cid:11)(cid:24)i d(cid:13) li(cid:14)u 2. Các lo(cid:16)i nút (node) mà XSLT x(cid:25) lý (cid:11)(cid:5)(cid:26)c 3. C(cid:20)u trúc t(cid:24)ng quát file XSL 4. M(cid:21)t s(cid:27) ph(cid:28)n t(cid:25) XSL 5. Các l(cid:14)nh xsl 6. M(cid:21)t s(cid:27) hàm thông d(cid:29)ng 7. Thao tác trên file xsl
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)
(cid:11)(cid:4)(cid:7)(cid:15)9 (cid:1)(cid:2)(cid:20):(cid:19)(cid:5)(cid:7)(cid:15);(cid:18)(cid:7)<(cid:14) (cid:12)(cid:18)3(cid:20)
C(cid:31)U TRÚC CÂY
C(cid:31)U TRÚC CÂY
B(cid:21) x(cid:25) lý XSL
D(cid:1) li(cid:2)u (cid:3)(cid:4)u ra( tài li(cid:14)u k(cid:30)t qu(cid:1) (cid:11)(cid:5)(cid:26)c hi(cid:12)n th(cid:18))
D(cid:1) li(cid:2)u (cid:3)(cid:4)u vào(tài li(cid:14)u XML c(cid:28)n chuy(cid:12)n (cid:11)(cid:24)i)
T P H!P CÁC NODE
XSL stylesheet
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
8
(cid:1)>(cid:1)(cid:7)<5(cid:5)(cid:6)(cid:7)(cid:5)?((cid:7)@(cid:5)6
Có 7 lo(cid:12)i nút mà b(cid:6) x(cid:7) lý XSL nh(cid:13)n d(cid:12)ng và x(cid:7) lý (cid:3)(cid:14)(cid:15)c là:
1. Document root (Nút g(cid:5)c)
n(cid:6)i kh"i (cid:11)(cid:28)u tài li(cid:14)u chuy(cid:12)n d(cid:18)ch.
2. Attribute (Thu(cid:6)c tính)
giá tr(cid:18) thu(cid:21)c tính c(cid:15)a tag.
3. Comment (Chú thích)
d(cid:13) li(cid:14)u chu#i v$n b(cid:1)n ghi chú
4. Element (Ph(cid:4)n t(cid:7))
tên c(cid:15)a ph(cid:28)n t(cid:25) th% và t&p các ph(cid:28)n t(cid:25) con
gi(cid:13)a th% (cid:11)óng và th% m" n(cid:30)u có.
gi(cid:13) chu#i (cid:11)(cid:18)nh danh URI c(cid:15)a không gian tên
5. Namespace (không gian tên)
gi(cid:13) n(cid:21)i dung chu#i ch’ th(cid:18) x(cid:25) lý (cid:11)ã lo(cid:16)i b( hai ký
t(cid:19) (cid:11)(cid:18)nh d(cid:16)ng là và ?>.
6. Pocessing instructor (Ch(cid:8) th(cid:9) x(cid:7) lý)
7. Text (v(cid:10)n b(cid:11)n)
d(cid:13) li(cid:14)u text n)m gi(cid:13)a th% (cid:11)óng và th% m"
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
=
(cid:1)D(cid:28) EFG! EH(cid:31)(cid:27)I(cid:28)JE K-.)(cid:7)(cid:10)(cid:11)(cid:12)
xmlns:xsl=“http://www. w3. org/TR/WD-xsl”|
xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
C
- ->
(cid:1)D(cid:28) EFG! EH(cid:31)(cid:27)I(cid:28)JE K-.)(cid:7)(cid:10)(cid:11)(cid:12)
NHÚNG TÀI LI(cid:8)U XSLT VÀO TÀI LI(cid:8)U XML
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
L
(cid:21)(cid:24)((cid:7)(cid:11)N O(cid:2)P(cid:5)(cid:7)(Q (cid:10)(cid:11)(cid:12)(
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
M
(cid:2) Template
(cid:2) Apply-templates
(cid:2) value-of
(cid:2) sort
(cid:2) copy-of
(cid:2) copy
(cid:2) …
TUV.(cid:26)E),W.’E)X
(cid:1) Cú pháp:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RS
TUV.(cid:26)E),W.’E)X(cid:7)@EEB
(cid:2) Template là n(cid:17)n t(cid:1)ng c(cid:15)a ki(cid:30)n trúc lu&t c(cid:6) b(cid:1)n mà XSLT
s(cid:25) d(cid:29)ng
(cid:2) S(cid:25) d(cid:29)ng template (cid:11)(cid:12) n(cid:21)i dung trong (cid:11)ó xu(cid:20)t hi(cid:14)n nh(cid:5) m(cid:21)t
ngõ xu(cid:20)t
(cid:1) Ý ngh*a:
(cid:1) Các thu(cid:21)c tính c(cid:15)a template:
(cid:2) Thu(cid:21)c tính match
(cid:2) Thu(cid:21)c tính name
(cid:2) Thu(cid:21)c tính mode, s(cid:25) d(cid:29)ng khi mu(cid:27)n x(cid:25) lý cùng m(cid:21)t
ph(cid:28)n nh(cid:5)ng trong các template khác nhau.
(cid:1) Chú ý: c(cid:28)n ph(cid:1)i có ít nh(cid:20)t m(cid:21)t template trong toàn b(cid:21) tài
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RR
li(cid:14)u c(cid:15)a chúng ta.
TUV.(cid:26)’WW.(cid:29)0E),W.’E)VX
(cid:1) Cú pháp:
(cid:1) Ví d(cid:29):
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R/
TUV.(cid:26)’WW.(cid:29)0E),W.’E)VX(cid:7)@EEB
(cid:2) (cid:3)(cid:5)(cid:26)c dùng bên trong m(cid:21)t template.
(cid:2) (cid:3)(cid:18)nh ngh*a m(cid:21)t t&p các node (cid:11)(cid:5)(cid:26)c x(cid:25) lý.
(cid:2) X(cid:25) lý b(cid:20)t k+ template ‘con’ (ph(cid:28)n t(cid:25) con c(cid:15)a ph(cid:28)n t(cid:25) (cid:11)ang
xét).
(cid:2) K(cid:30)t h(cid:26)p thu(cid:21)c tính select (cid:11)(cid:12) x(cid:25) lý node c(cid:29) th(cid:12)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R1
(cid:1) Ý ngh*a:
TUV.(cid:26)’WW.(cid:29)0E),W.’E)VX
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R(cid:8)
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)’WW.(cid:29)0E),W.’E)VX
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R8
TUV.(cid:26)[’.(cid:28))0&KX
(cid:1) Cú pháp:
(cid:1) Ví d(cid:29):
(bài t&p s(cid:27) 1)
(cid:1) L(cid:20)y giá tr(cid:18) t(cid:16)i nút OperatorName
(cid:1) T(cid:5)(cid:6)ng t(cid:19) t(cid:16)i nút th(cid:4) 2
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R=
(cid:25)Y *Z(cid:26)(cid:7)[’.(cid:28))0&K
Lien lac:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RC
SQL Server magazine
Penton
Web Techniques
CMP
Wireless Business and Technology
Sys-con media
MSDN
CMP
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RL
(cid:1)>(cid:1)(cid:7)(cid:12)3(cid:5)(cid:2)(cid:7)(cid:10)(cid:11)(cid:12)
(cid:1)
(cid:1)
(cid:1)
(cid:1)
(cid:1)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RM
TUV.(cid:26)-KX
(cid:1) Cú pháp:
Kh(cid:27)i l(cid:14)nh
(cid:1) Ý ngh*a:
(cid:1) Ví d(cid:29):
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/S
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)-K(cid:9)(cid:9)X
chu de:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/R
TUV.(cid:26)\%)(cid:31)X
(cid:1) Cú pháp:
(cid:1) Ý ngh*a
(cid:1) Ví d(cid:29):
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
//
Kh(cid:27)i l(cid:14)nh th(cid:19)c hi(cid:14)n
TUV.(cid:26)!%&&V)X]TUV.(cid:26)\%)(cid:31)X
(cid:1) Cú pháp:
….
….
…….
…
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/1
(cid:1) Ý ngh*a
(cid:1) Ví d(cid:29)
^(cid:7)(cid:31)(cid:27)%_’
(cid:1) Giá tr(cid:18) c(cid:15)a thu(cid:21)c tính test là m(cid:21)t bi(cid:12)u th(cid:4)c so
sánh ho,c m(cid:21)t Xpath.
K(cid:30)t qu(cid:1) c(cid:15)a bi(cid:12)u th(cid:4)c là true khi nó tr(cid:1) v(cid:17) m(cid:21)t
trong các giá tr(cid:18) sau:
(cid:2)M(cid:21)t con s(cid:27) khác zero
(cid:2)M(cid:21)t b(cid:21) node có ít nh(cid:20)t m(cid:21)t node
(cid:2)M(cid:21)t m(cid:1)nh (fragment) Tree
(cid:2)M(cid:21)t text string không ph(cid:1)i là tr(cid:27)ng r#ng (non-
empty
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/(cid:8)
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)!%&&V)X]TUV.(cid:26)\%)(cid:31)X
-
Catagory A
Catagory B
Catagory
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/8
TUV.(cid:26)K&F0)’!%X
(cid:1) Cú pháp:
n(cid:21)i dung c(cid:28)n l,p
(cid:1) Ý ngh*a:
(cid:1) Ví d(cid:29)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/=
(cid:25)Y *Z(cid:26)TUV.(cid:26)(cid:7)K&F0)’!%X
Lien he:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/C
(cid:21)‘E Va %b, E%c(cid:31)(cid:27)*Z(cid:31)(cid:27)
(cid:1) position(): V(cid:18) trí c(cid:15)a node hi(cid:14)n hành trong t&p
các node
(cid:1) text(): Ph(cid:28)n v$n b(cid:1)n (n(cid:21)i dung) c(cid:15)a m(cid:21)t ph(cid:28)n t(cid:25)
(cid:1) last(): V(cid:18) trí c(cid:15)a node cu(cid:27)i cùng trong t&p node
(cid:1) count(): s(cid:27) node trong t&p node
(cid:1) contains(): tr(cid:1) v(cid:17) true n(cid:30)u (cid:11)(cid:27)i s(cid:27) (cid:11)(cid:28)u tiên ch(cid:4)a
(cid:11)(cid:27)i s(cid:27) th(cid:4) 2
(cid:1) starts-with(): tr(cid:1) v(cid:17) true n(cid:30)u (cid:11)(cid:27)i s(cid:27) th(cid:4) nh(cid:20)t b(cid:22)t
(cid:11)(cid:28)u v-i (cid:11)(cid:27)i s(cid:27) th(cid:4) 2
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/L
(cid:1)J! E%’& EJ! EFd(cid:31) K-.)(cid:7)U,.
(cid:1) sort
(cid:1) copy
(cid:1) copy-of
(cid:1) attribute
(cid:1) element
(cid:1) Comment
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/M
TUV.(cid:26)V&FEX
(cid:1) Cú pháp:
(cid:1) Trong (cid:11)ó:
(cid:1) Ý ngh*a:
(cid:2)S(cid:22)p x(cid:30)p d(cid:13) li(cid:14)u (cid:11)(cid:28)u ra
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1S
order ->ki(cid:12)u s(cid:22)p x(cid:30)p: descending, accending
data-type ->ki(cid:12)u d(cid:13) li(cid:14)u thao tác: text, number
TUV.(cid:26)!&W(cid:29)0&K(cid:9)(cid:9)X
(cid:1) Cú pháp:
(cid:1)
(cid:1) Ý ngh*a:
(cid:1) Sao chép m(cid:21)t ph(cid:28)n cây g(cid:27)c – cây k(cid:30)t qu(cid:1)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1R
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)!&W(cid:29)0&KX
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1/
TUV.(cid:26)!&W(cid:29)(cid:9)(cid:9)X
(cid:1) Cú pháp:
(cid:1) Ý ngh*a:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
11
(cid:2) Sao chép m(cid:21)t ph(cid:28)n cây g(cid:27)c – cây k(cid:30)t qu(cid:1)
(cid:25)Y *Z(cid:26)(cid:7)EH(cid:31)(cid:27)%eW $ Ef& !g(cid:29)hi(cid:28) F’
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1(cid:8)
TUV.(cid:26)).),)(cid:31)E (cid:9)(cid:9)X
(cid:1) Cú pháp:
N(cid:21)i dung ph(cid:28)n t(cid:25)
(cid:1) Ý ngh*a:
(cid:2) T(cid:16)o ph(cid:28)n t(cid:25) m-i trên cây k(cid:30)t qu(cid:1)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
18
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)).),)(cid:31)E(cid:9)(cid:9)X
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1=
(cid:17)jE I(cid:28)k 0 Ef& W%i(cid:31) El ,m-
(cid:1) K(cid:30)t qu(cid:1) nh(cid:5) sau:
SQL Server magazine
Web Techniques
Wireless Business and
Technology
MSDN
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1C
TUV.(cid:26)’EEF-n(cid:28)E)(cid:9)(cid:9)X
(cid:1) Cú pháp:
Giá tr(cid:18) thu(cid:21)c tính
(cid:1) Ý ngh*a:
(cid:2)T(cid:16)o thu(cid:21)c tính cho cây (cid:11)(cid:28)u ra
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1L
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)’EEF-n(cid:28)E)X
SQL Server magazine
Web Techniques
Wireless Business and Technology
MSDN
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1M
(cid:25)Y *Z(cid:26)(cid:7)UV.(cid:26)!&,,)(cid:31)E
Operator name is
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)S
(cid:17)jE I(cid:28)k 0 TUV.(cid:26)!&,,)(cid:31)E (cid:9)(cid:9)X
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)R
(f& (cid:31)(cid:27)oU(cid:28)DE
(cid:1)
(cid:1) Ý ngh*a:
Xu(cid:20)t source tree -> result tree (xml|html|text)
(cid:1) Chú ý:
Ph(cid:1)i là con tr(cid:19)c ti(cid:30)p c(cid:15)a
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)/
(cid:10)(cid:11)(cid:12)(cid:7)(cid:31)g(cid:31)(cid:27)!’&
(cid:1) Bi(cid:30)n, h)ng (variable, constant)
(cid:1) Binding (ràng bu(cid:21)c)
(cid:1) (cid:3),t tên cho templates (named templates)
(cid:1) Tham s(cid:27) (parameter)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)1
p-j(cid:31)](cid:7)%q(cid:31)(cid:27)
(cid:1) Khai báo:
constant
(cid:1) S(cid:25) d(cid:29)ng:$VariableName
(cid:1) Chú ý:
Không (cid:11)(cid:5)(cid:26)c tham chi(cid:30)u t-i b(cid:1)n thân bi(cid:30)n (cid:11)ó.
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)(cid:8)
p-j(cid:31)](cid:7)%q(cid:31)(cid:27)
(cid:1) L(cid:20)y giá tr(cid:18) c(cid:15)a bi(cid:30)n
(cid:2)
(cid:2)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)8
p-(cid:31)*-(cid:31)(cid:27)(cid:7)@Fb(cid:31)(cid:27)n(cid:28)‘!B
thu(cid:21)c m(cid:21)t template
(cid:1) Global: Khai báo ngoài các template
(cid:1) Local:
(cid:1) Ví d(cid:29):
30
Fred
(cid:8)=
p-(cid:31)*-(cid:31)(cid:27)
Fred
Barney
Câu h(i:
l(cid:20)y giá tr(cid:18) c(cid:15)a bi(cid:30)n
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)C
“name” nào?
(cid:5)’,)*(cid:7)(),W.’E)
(cid:1) T(cid:16)o:
(cid:1) S(cid:25) d(cid:29)ng:
(cid:1) Ý ngh*a:
(cid:2)Chèn n(cid:21)i dung vào l.i g/i temp
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)L
N(cid:21)i dung
O’F’,)E)F
(cid:1) V(cid:20)n (cid:11)(cid:17) (cid:11),t ra:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)M
First name:
Last name:
O’F’,)E)F
(cid:1) Khai báo:
Value
(cid:1) Ví d(cid:29):
select="first"/>
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
8S
First name:
Last name:
O’F’,)E)F
(cid:1) Truy(cid:17)n tham s(cid:27)
value
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
8R
(rW E-(cid:31)(cid:7),s(cid:28)
SaiGon Tourist
Tham quan mi(cid:17)n Tây
L(cid:25)a Vi(cid:14)t Tourist
Tu(cid:28)n Châu - H(cid:16) Long
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
8/
Có 7 lo(cid:12)i nút mà b(cid:6) x(cid:7) lý XSL nh(cid:13)n d(cid:12)ng và x(cid:7) lý (cid:3)(cid:14)(cid:15)c là:
1. Document root (Nút g(cid:5)c)
n(cid:6)i kh"i (cid:11)(cid:28)u tài li(cid:14)u chuy(cid:12)n d(cid:18)ch.
2. Attribute (Thu(cid:6)c tính)
giá tr(cid:18) thu(cid:21)c tính c(cid:15)a tag.
3. Comment (Chú thích)
d(cid:13) li(cid:14)u chu#i v$n b(cid:1)n ghi chú
4. Element (Ph(cid:4)n t(cid:7))
tên c(cid:15)a ph(cid:28)n t(cid:25) th% và t&p các ph(cid:28)n t(cid:25) con gi(cid:13)a th% (cid:11)óng và th% m" n(cid:30)u có.
gi(cid:13) chu#i (cid:11)(cid:18)nh danh URI c(cid:15)a không gian tên
5. Namespace (không gian tên)
gi(cid:13) n(cid:21)i dung chu#i ch’ th(cid:18) x(cid:25) lý (cid:11)ã lo(cid:16)i b( hai ký t(cid:19) (cid:11)(cid:18)nh d(cid:16)ng là và ?>.
6. Pocessing instructor (Ch(cid:8) th(cid:9) x(cid:7) lý) 7. Text (v(cid:10)n b(cid:11)n)
d(cid:13) li(cid:14)u text n)m gi(cid:13)a th% (cid:11)óng và th% m"
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
=
(cid:1)D(cid:28) EFG! EH(cid:31)(cid:27)I(cid:28)JE K-.)(cid:7)(cid:10)(cid:11)(cid:12)
xmlns:xsl=“http://www. w3. org/TR/WD-xsl”|
xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, C - ->
(cid:1)D(cid:28) EFG! EH(cid:31)(cid:27)I(cid:28)JE K-.)(cid:7)(cid:10)(cid:11)(cid:12)
NHÚNG TÀI LI(cid:8)U XSLT VÀO TÀI LI(cid:8)U XML
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
L
(cid:21)(cid:24)((cid:7)(cid:11)N O(cid:2)P(cid:5)(cid:7)(Q (cid:10)(cid:11)(cid:12)(
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
M
(cid:2) Template (cid:2) Apply-templates (cid:2) value-of (cid:2) sort (cid:2) copy-of (cid:2) copy (cid:2) …
TUV.(cid:26)E),W.’E)X
(cid:1) Cú pháp:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RS
TUV.(cid:26)E),W.’E)X(cid:7)@EEB
(cid:2) Template là n(cid:17)n t(cid:1)ng c(cid:15)a ki(cid:30)n trúc lu&t c(cid:6) b(cid:1)n mà XSLT
s(cid:25) d(cid:29)ng
(cid:2) S(cid:25) d(cid:29)ng template (cid:11)(cid:12) n(cid:21)i dung trong (cid:11)ó xu(cid:20)t hi(cid:14)n nh(cid:5) m(cid:21)t
ngõ xu(cid:20)t
(cid:1) Ý ngh*a:
(cid:1) Các thu(cid:21)c tính c(cid:15)a template:
(cid:2) Thu(cid:21)c tính match (cid:2) Thu(cid:21)c tính name (cid:2) Thu(cid:21)c tính mode, s(cid:25) d(cid:29)ng khi mu(cid:27)n x(cid:25) lý cùng m(cid:21)t
ph(cid:28)n nh(cid:5)ng trong các template khác nhau.
(cid:1) Chú ý: c(cid:28)n ph(cid:1)i có ít nh(cid:20)t m(cid:21)t template trong toàn b(cid:21) tài
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RR
li(cid:14)u c(cid:15)a chúng ta.
TUV.(cid:26)’WW.(cid:29)0E),W.’E)VX
(cid:1) Cú pháp:
(cid:1) Ví d(cid:29):
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R/
TUV.(cid:26)’WW.(cid:29)0E),W.’E)VX(cid:7)@EEB
(cid:2) (cid:3)(cid:5)(cid:26)c dùng bên trong m(cid:21)t template. (cid:2) (cid:3)(cid:18)nh ngh*a m(cid:21)t t&p các node (cid:11)(cid:5)(cid:26)c x(cid:25) lý. (cid:2) X(cid:25) lý b(cid:20)t k+ template ‘con’ (ph(cid:28)n t(cid:25) con c(cid:15)a ph(cid:28)n t(cid:25) (cid:11)ang
xét).
(cid:2) K(cid:30)t h(cid:26)p thu(cid:21)c tính select (cid:11)(cid:12) x(cid:25) lý node c(cid:29) th(cid:12)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R1
(cid:1) Ý ngh*a:
TUV.(cid:26)’WW.(cid:29)0E),W.’E)VX
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R(cid:8)
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)’WW.(cid:29)0E),W.’E)VX
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R8
TUV.(cid:26)[’.(cid:28))0&KX
(cid:1) Cú pháp:
(cid:1) Ví d(cid:29):
(bài t&p s(cid:27) 1)
(cid:1) L(cid:20)y giá tr(cid:18) t(cid:16)i nút OperatorName
(cid:1) T(cid:5)(cid:6)ng t(cid:19) t(cid:16)i nút th(cid:4) 2
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, R=
(cid:25)Y *Z(cid:26)(cid:7)[’.(cid:28))0&K
Lien lac:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RC
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RL
(cid:1)>(cid:1)(cid:7)(cid:12)3(cid:5)(cid:2)(cid:7)(cid:10)(cid:11)(cid:12)
(cid:1)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, RM
TUV.(cid:26)-KX
(cid:1) Cú pháp:
Kh(cid:27)i l(cid:14)nh
(cid:1) Ý ngh*a: (cid:1) Ví d(cid:29):
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/S
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)-K(cid:9)(cid:9)X
chu de:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/R
TUV.(cid:26)\%)(cid:31)X
(cid:1) Cú pháp:
(cid:1) Ý ngh*a (cid:1) Ví d(cid:29):
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
//
TUV.(cid:26)!%&&V)X]TUV.(cid:26)\%)(cid:31)X
(cid:1) Cú pháp:
…….
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/1
(cid:1) Ý ngh*a (cid:1) Ví d(cid:29)
^(cid:7)(cid:31)(cid:27)%_’
(cid:1) Giá tr(cid:18) c(cid:15)a thu(cid:21)c tính test là m(cid:21)t bi(cid:12)u th(cid:4)c so
sánh ho,c m(cid:21)t Xpath. K(cid:30)t qu(cid:1) c(cid:15)a bi(cid:12)u th(cid:4)c là true khi nó tr(cid:1) v(cid:17) m(cid:21)t trong các giá tr(cid:18) sau: (cid:2)M(cid:21)t con s(cid:27) khác zero (cid:2)M(cid:21)t b(cid:21) node có ít nh(cid:20)t m(cid:21)t node (cid:2)M(cid:21)t m(cid:1)nh (fragment) Tree (cid:2)M(cid:21)t text string không ph(cid:1)i là tr(cid:27)ng r#ng (non-
empty
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/(cid:8)
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)!%&&V)X]TUV.(cid:26)\%)(cid:31)X
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/8
TUV.(cid:26)K&F0)’!%X
(cid:1) Cú pháp:
n(cid:21)i dung c(cid:28)n l,p
(cid:1) Ý ngh*a: (cid:1) Ví d(cid:29)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/=
(cid:25)Y *Z(cid:26)TUV.(cid:26)(cid:7)K&F0)’!%X
Lien he:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/C
(cid:21)‘E Va %b, E%c(cid:31)(cid:27)*Z(cid:31)(cid:27)
(cid:1) position(): V(cid:18) trí c(cid:15)a node hi(cid:14)n hành trong t&p
các node
(cid:1) text(): Ph(cid:28)n v$n b(cid:1)n (n(cid:21)i dung) c(cid:15)a m(cid:21)t ph(cid:28)n t(cid:25) (cid:1) last(): V(cid:18) trí c(cid:15)a node cu(cid:27)i cùng trong t&p node (cid:1) count(): s(cid:27) node trong t&p node (cid:1) contains(): tr(cid:1) v(cid:17) true n(cid:30)u (cid:11)(cid:27)i s(cid:27) (cid:11)(cid:28)u tiên ch(cid:4)a
(cid:11)(cid:27)i s(cid:27) th(cid:4) 2
(cid:1) starts-with(): tr(cid:1) v(cid:17) true n(cid:30)u (cid:11)(cid:27)i s(cid:27) th(cid:4) nh(cid:20)t b(cid:22)t
(cid:11)(cid:28)u v-i (cid:11)(cid:27)i s(cid:27) th(cid:4) 2
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/L
(cid:1)J! E%’& EJ! EFd(cid:31) K-.)(cid:7)U,.
(cid:1) sort (cid:1) copy (cid:1) copy-of (cid:1) attribute (cid:1) element (cid:1) Comment
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
/M
TUV.(cid:26)V&FEX
(cid:1) Cú pháp:
(cid:1) Trong (cid:11)ó:
(cid:1) Ý ngh*a:
(cid:2)S(cid:22)p x(cid:30)p d(cid:13) li(cid:14)u (cid:11)(cid:28)u ra
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1S
order ->ki(cid:12)u s(cid:22)p x(cid:30)p: descending, accending data-type ->ki(cid:12)u d(cid:13) li(cid:14)u thao tác: text, number
TUV.(cid:26)!&W(cid:29)0&K(cid:9)(cid:9)X
(cid:1) Cú pháp: (cid:1) (cid:1) Ý ngh*a: (cid:1) Sao chép m(cid:21)t ph(cid:28)n cây g(cid:27)c – cây k(cid:30)t qu(cid:1)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1R
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)!&W(cid:29)0&KX
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1/
TUV.(cid:26)!&W(cid:29)(cid:9)(cid:9)X
(cid:1) Cú pháp:
(cid:1) Ý ngh*a:
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
11
(cid:2) Sao chép m(cid:21)t ph(cid:28)n cây g(cid:27)c – cây k(cid:30)t qu(cid:1)
(cid:25)Y *Z(cid:26)(cid:7)EH(cid:31)(cid:27)%eW $ Ef& !g(cid:29)hi(cid:28) F’
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1(cid:8)
TUV.(cid:26)).),)(cid:31)E (cid:9)(cid:9)X
(cid:1) Cú pháp:
N(cid:21)i dung ph(cid:28)n t(cid:25)
(cid:1) Ý ngh*a:
(cid:2) T(cid:16)o ph(cid:28)n t(cid:25) m-i trên cây k(cid:30)t qu(cid:1)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
18
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)).),)(cid:31)E(cid:9)(cid:9)X
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1=
(cid:17)jE I(cid:28)k 0 Ef& W%i(cid:31) El ,m-
(cid:1) K(cid:30)t qu(cid:1) nh(cid:5) sau:
Technology
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1C
TUV.(cid:26)’EEF-n(cid:28)E)(cid:9)(cid:9)X
(cid:1) Cú pháp:
Giá tr(cid:18) thu(cid:21)c tính
(cid:1) Ý ngh*a:
(cid:2)T(cid:16)o thu(cid:21)c tính cho cây (cid:11)(cid:28)u ra
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1L
(cid:25)Y *Z(cid:26)(cid:7)TUV.(cid:26)’EEF-n(cid:28)E)X
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
1M
(cid:25)Y *Z(cid:26)(cid:7)UV.(cid:26)!&,,)(cid:31)E
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)S
(cid:17)jE I(cid:28)k 0 TUV.(cid:26)!&,,)(cid:31)E (cid:9)(cid:9)X
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)R
(f& (cid:31)(cid:27)oU(cid:28)DE
(cid:1)
(cid:1) Ý ngh*a:
Xu(cid:20)t source tree -> result tree (xml|html|text)
(cid:1) Chú ý:
Ph(cid:1)i là con tr(cid:19)c ti(cid:30)p c(cid:15)a
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)/
(cid:10)(cid:11)(cid:12)(cid:7)(cid:31)g(cid:31)(cid:27)!’&
(cid:1) Bi(cid:30)n, h)ng (variable, constant) (cid:1) Binding (ràng bu(cid:21)c) (cid:1) (cid:3),t tên cho templates (named templates) (cid:1) Tham s(cid:27) (parameter)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)1
p-j(cid:31)](cid:7)%q(cid:31)(cid:27)
(cid:1) Khai báo:
(cid:1) S(cid:25) d(cid:29)ng:$VariableName (cid:1) Chú ý:
Không (cid:11)(cid:5)(cid:26)c tham chi(cid:30)u t-i b(cid:1)n thân bi(cid:30)n (cid:11)ó.
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)(cid:8)
p-j(cid:31)](cid:7)%q(cid:31)(cid:27)
(cid:1) L(cid:20)y giá tr(cid:18) c(cid:15)a bi(cid:30)n
(cid:2)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&,
(cid:8)8
p-(cid:31)*-(cid:31)(cid:27)(cid:7)@Fb(cid:31)(cid:27)n(cid:28)‘!B
thu(cid:21)c m(cid:21)t template
(cid:1) Global: Khai báo ngoài các template (cid:1) Local: (cid:1) Ví d(cid:29):
(cid:8)=
Câu h(i: (cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, (cid:8)C “name” nào? (cid:1) T(cid:16)o: (cid:1) S(cid:25) d(cid:29)ng: (cid:1) Ý ngh*a: (cid:2)Chèn n(cid:21)i dung vào l.i g/i temp (cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, (cid:8)L (cid:1) V(cid:20)n (cid:11)(cid:17) (cid:11),t ra: (cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, (cid:8)M First name: (cid:1) Khai báo: (cid:1) Ví d(cid:29): select="first"/> (cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, 8S First name: (cid:1) Truy(cid:17)n tham s(cid:27)
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, 8R
(cid:6)(cid:25)(cid:26)(cid:5)(cid:27)(cid:28)(cid:29)(cid:30)(cid:31) (cid:15) ! (cid:1)"#(cid:31)(cid:27)$ (cid:17)%&’(cid:1)(cid:5)(( $ !(cid:28)&(cid:31)(cid:27)(cid:31)(cid:27)(cid:28)(cid:29))(cid:31)*(cid:28)!+(cid:27),’-.(cid:9)!&, 8/p-(cid:31)*-(cid:31)(cid:27)
(cid:5)’,)*(cid:7)(),W.’E)
O’F’,)E)F
O’F’,)E)F
O’F’,)E)F
(rW E-(cid:31)(cid:7),s(cid:28)