(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à .

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/