Title: XML?Xpath??XML??
1XML?Xpath??XML??
No. XML - ch8
2 Part I?? XSL
3??? XSL
- XSL (??????) ,????? XML ???? (font, size, color
.. ) ????????? - XML StyleSheet Language
- eXtensible StyleSheet Language
- ????Script??
- XSL ????? XML?? ,?? .xsl ?????
- ?????????
- ??XML??
- ???XML??(IE???????????)
4????? XSL
- XSL????XML????????
- XSL???????????????,??????
- XSL?????????????,???????????????,?????
- XSL ? XSLT ??????????
- XSLT ??????XML??(document)???????.
5XSL Family
SGML
XML
HTML
XSL
XSLT
XSL FO
XSLT
XPATH
6CSS?XSLT???
. CSS XSLT
???HTML ?? ??
???XHTML ?? ??
???XML ?? ??
????? CSS???? XML??
??????? ?? ?
7XML Transform -Server???
HTML??
XML???
XML
???
XSLT???
XML???
XSLT
Server?
Client?
8XML Transform -Client???
Server??????
?XML?XSLT??Client?,?IE????
XML
XSLT
Server?
Client?
9Part IIXPath ??
10XPath ????
- Xpath
- XPath?????,?????????,????XML?????,?????????????
- ??XSLT?XML???????????????
- Xpath???XSLT?Xpointer????
11Xpath????
Xpath????
/glossary/item/title
/glossary/item//title
XML??
12XPath ????
- "/"??????????,??DOS??????
- //????????????????
- ltxslfor-each select"childPEOPLE/descendantPE
RSON"gt - ltxslfor-each select"PEOPLE//PERSON"gt
- PEOPLE//PERSON???PEOPLE??????PERSON ???
13XPath ????
- ?(Axis)-?????????????
- self . ????????
- parent .. ???????????
- attribute _at_ ????????????
- Predicate??????????????,????????? Expression
? - PERSONposition()2 ???????????PERSON ??
- PERSONstarts-with(name, B)
?????????????B???PERSON??
14XPath ????
- and, or ???????and, or
- gt, lt, gt, lt, !,
- ???XSL???,lt ????lt ??,gt ????gt ???
15XPath ????
- ?XPath????????????????????????
- count()????,?????????????
- ltxslvalue-of select"count(PERSONnametom)"/gt
- number()???????????????
- The number is ltxslvalue-of select"number(book/p
rice)"/gt - sum()???
- Total Price ltxslvalue-of select"sum(//price)"/
gt
16 Part IIIXSLT ??
17????
????
9876543
???
max_at_mail.chna.edu.tw
???
????(?)???
18????? -1
????? XML? course.xml lt?xml version"1.0"
?gt ltCoursegtXML Design and Programminglt/Coursegt ltIn
structorgtDr. Max Chilt/Instructorgt
19????? -2
?????XSLT ? show.xsl? lt?xml version"1.0"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplate match"/"gt lthtmlgt ltbodygt
ltpgtltxslvalue-of select"Course"/gtlt/pgt
ltpgtltxslvalue-of select"Instructor"/gtlt/pgt lt/bodygt
lt/htmlgt lt/xsltemplategt lt/xslstylesheetgt
20????? -3
????XML??? show.xsl ?????course.xml ? lt?xml
version"1.0" ?gt lt?xml-stylesheet type"text/xsl"
hrefshow.xsl"?gt ltCoursegtXML Design and
Programminglt/Coursegt ltInstructorgtDr. Max
Chilt/Instructorgt
??
21????? -1
- lt?xml version"1.0" encoding"Big5"?gt
- ltglossarygt
- ltitemgt
- lttitle version"EN"gteXtensible Markup
Languagelt/titlegt - ltdefinitiongt????????lttitlegtXMLlt/titlegtlt/de
finitiongt - lt/itemgt
- ltitemgt
- lttitle version"EN"gtencodinglt/titlegt
- ltdefinitiongt???lt/definitiongt
- lt/itemgt
- ltitemgt
- lttitle version"EN"gtUniform Resource
Identifierlt/titlegt - ltdefinitiongt????????lttitlegtURIlt/titlegtlt/de
finitiongt - lt/itemgt
- lt/glossarygt
22????? -2
- lt?xml version"1.0" encoding"Big5"?gt
- ltxslstylesheet version"1.0" xmlnsxsl"http//ww
w.w3.org/1999/XSL/Transform"gt - ltxsltemplate match"/glossary/itemposition()1"
gt - ltcentergtlth2gtXML????lt/h2gtlt/centergt
- lthr/gt
- ltpgtltbgtltxslvalue-of select"title"/gt -
- ltxslvalue-of select"definition"/gtlt/bgt
- (ltxslvalue-of select"definition/title"/gt)lt/p
gt - lt/xsltemplategt
- ltxsltemplate match"/glossary/itemposition()2"
gt - ltpgtltigtltxslvalue-of select"title"/gt -
- ltxslvalue-of select"definition"/gtlt/igt
- lt/pgt
- lt/xsltemplategt
- ltxsltemplate match"/glossary/item/title_at_version
'AB'"gt - ltpgtltugtltxslvalue-of select"."/gt -
23????? -3
- lt?xml version"1.0" encoding"Big5"?gt
- lt?xml-stylesheet type"text/xsl"
href"Ch8-5-1.xslt" ?gt - ltglossarygt
- ltitemgt
- lttitle version"EN"gteXtensible Markup
Languagelt/titlegt - ltdefinitiongt????????lttitlegtXMLlt/titlegtlt/de
finitiongt - lt/itemgt
- ltitemgt
- lttitle version"TW"gtencodinglt/titlegt
- ltdefinitiongt???lt/definitiongt
- lt/itemgt
- ltitemgt
- lttitle version"AB"gtUniform Resource
Identifierlt/titlegt - ltdefinitiongt????????lttitlegtURIlt/titlegtlt/de
finitiongt - lt/itemgt
- lt/glossarygt
??
24 Ex411_1.xsl
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/T
R/xsl"gt ltxsltemplate match"??/????/??" gt
ltxslvalue-of /gt lt/xsltemplategt lt/xslstyleshe
etgt
XSL ????? XML??
25XML ?? XSL
- XML ????XSL (??????) ,???????? ?
- lt?xmlstylesheet typetext/xsl hrefURL?gt
- ??
- lt?xml-stylesheet href"ex421_2.xsl"
type"text/xsl"?gt - lt?xml-stylesheet type"text/xsl"
href"ex421_2.xsl"?gt
?? ? ??
???????
26XSL? HTML ????
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplategt ltxslvalue-of
select "??/????/??" /gt ltbr/gt
ltxslvalue-of select "??/????/??" /gt
ltbr/gt ltxslvalue-of select "??/????/??" /gt
lt/xsltemplategt lt/xslstylesheetgt
27XSL? HTML ????
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplategt lth3gt
ltxslvalue-of select "??/????/??" /gt lt/h3gt
lth2gt ltxslvalue-of select
"??/????/??" /gt lt/h2gt ltxslvalue-of
select "??/????/??" /gt lt/xsltemplategt lt/xslst
ylesheetgt
XSL? HTML ????? 413_2.xsl
28XSL ? CSS
?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplategt lth3
style"colorred"gt ltxslvalue-of select
"??/????/??" /gt lt/h3gt lth2
style"colorred"gt ltxslvalue-of
select "??/????/??" /gt lt/h2gt
?????? HTML/ CSS ???? 415_1.xsl
29???? XSL ??
- ????? XML ????
- lt?xml version"1.0" encoding"BIG5" ?gt
- ????? xsl ? NameSpace
- ltxslstylesheet xmlnsxsl"urixsl"gt
- ltxslstylesheet xmlnsxsl"http//www.w3.org/TR/xs
l"gt
30XSLT?????
- lt?xml version"1.0" encoding"Big5"?gt
- ltxslstylesheet version"1.0" xmlnsxsl"http//ww
w.w3.org/1999/XSL/Transform"gt - ltxsltemplate match"/"gt
-
-
- lt/xsltemplategt
- lt/xslstylesheetgt
??????? ????
31XSL ??????
- xslvalue-of (????)
- xsltemplate (????)
- xslapply-templates (??????)
- xslfor-each (????)
- xslsort (????)
- xslif (??????)
- xslchoose (?????)
32Xslvalue-of (????)
- ?XML?????????
- ??
- ltxslvalue-of select????gtlt/xslvalue-ofgt
- ??????????????Xpath??
- ??
- ltxsltemplate matchitemgt
- ltxslvalue-of selecttitle/gt
- ltxsltemplategt
33xslvalue-of ??-1 (??)
- lt?xml version"1.0" encoding"BIG5" ?gt
- ltxslstylesheet xmlnsxsl"http//www.w3.org/TR/WD
-xsl"gt - ltxsltemplategt
- ltxslvalue-of select "??" /gt
- lt/xsltemplategt
- lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex421_1.xsl"
type"text/xsl"?gt lt??gt lt????gt lt??gt
lt??gt ?? lt/??gt lt??gt ?? lt/??gt
lt/??gt lt??gt??lt/??gt
lt??gt?????,???????????,??????lt/??gt
lt/????gt lt/??gt
Ex421_1.xsl
?? ?? ?? ?????,???????????,??????
??
34xslvalue-of ??-2 (??)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplategt lth2gt ?????
ltxslvalue-of select "??/????/??/??" /gt
lt/h2gt lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex421_2.xsl"
type"text/xsl"?gt lt??gt lt????gt lt??gt
lt??gt ?? lt/??gt lt??gt ?? lt/??gt
lt/??gt lt??gt??lt/??gt
lt??gt?????,???????????,??????lt/??gt
lt/????gt lt/??gt
Ex421_2.xsl
????? ??
??
35xslvalue-of ??-3 (??)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplategt lth2gt ?????
ltxslvalue-of select "??/????/??" /gt
ltbr/gt ????? ltxslvalue-of select
"??/????/??/??" /gt lt/h2gt
lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex421_3.xsl"
type"text/xsl"?gt lt??gt lt????gt lt??gt
lt??gt ?? lt/??gt lt??gt ?? lt/??gt
lt/??gt lt??gt??lt/??gt
lt??gt?????,???????????,??????lt/??gt
lt/????gt lt/??gt
Ex421_3.xsl
????? ?????
??
36xslvalue-of ??-4 (??)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplategt lth2gt ??
ltxslvalue-of select "??/????/??/??" /gt
ltbr/gt ?? ltxslvalue-of select
"??/????/??" /gt lt/h2gt lth3gt
ltxslvalue-of select "??/????/??" /gt
lt/h3gt lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex422_1.xsl"
type"text/xsl"?gt lt??gt lt????gt lt??gt
lt??gt ?? lt/??gt lt??gt ?? lt/??gt
lt/??gt lt??gt??lt/??gt
lt??gt?????,???????????,??????lt/??gt
lt/????gt lt/??gt
Ex422_1.xsl
??
?? ?? ?? ?? ?????,???????????,??????
37xslvalue-of ??-5 (??)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplategt lth2gt
ltxslvalue-of select "??/????/??" /gt ---
?? ltxslvalue-of select "??/????/??/??" /gt
lt/h2gt lth3gt ltxslvalue-of select
"??/????/??" /gt lt/h3gt lt/xsltemplategt lt/xs
lstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex422_2.xsl"
type"text/xsl"?gt lt??gt lt????gt lt??gt
lt??gt ?? lt/??gt lt??gt ?? lt/??gt
lt/??gt lt??gt??lt/??gt
lt??gt?????,???????????,??????lt/??gt
lt/????gt lt/??gt
Ex422_2.xsl
????????
?? --- ?? ?? ?????,???????????,??????
??
38xslvalue-of ??-6 (??)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplategt lth2gt
ltxslvalue-of select "??/????/_at_??" /gt
lt/h2gt lth3gt ltxslvalue-of select
"??/????/??" /gt lt/h3gt lt/xsltemplategt lt/x
slstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex423_1.xsl"
type"text/xsl"?gt lt??gt lt???? ??"??"gt
lt?? ????gt ?? lt/??gt
lt??gt?????,??????
?????,?????? lt/??gt lt/????gt lt/??gt
Ex423_1.xsl
? _at_ ??????
?? ?????,???????????,??????
??
39xslvalue-of ??-7 (??)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"http//www.w3.org/TR
/WD-xsl"gt ltxsltemplategt lth2gt
ltxslvalue-of select "??/????/_at_??" /gt ---
ltxslvalue-of select "??/????/??" /gt
? ltxslvalue-of select "??/????/??/_at_??"
/gt lt/h2gt lth3gt ltxslvalue-of
select "??/????/??" /gt lt/h3gt
lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex423_2.xsl"
type"text/xsl"?gt lt??gt lt???? ??"??"gt
lt?? ????gt ?? lt/??gt
lt??gt?????,??????
?????,?????? lt/??gt lt/????gt lt/??gt
ex423_2.xsl
? _at_ ??????
?? --- ?? ? ?? ?????,???????????,??????
??
40XSL ??????
- xslvalue-of (????)
- xsltemplate (????)
- xslapply-templates (??????)
- xslfor-each (????)
- xslsort (????)
- xslif (??????)
- xslchoose (?????)
41xsltemplate (????)
- xsltemplate?????????,????????????
- ??
- ltxsltemplate match?? name????gt
-
- lt/xsltemplategt
- Match???????/??????????????
- ???? xsl template ??????xslstylesheet
- xsltemplate ????
- ltxsltemplate match??gt
??
42XSL ??????
- xslvalue-of (????)
- xsltemplate (????)
- xslapply-templates (??????)
- xslfor-each (????)
- xslsort (????)
- xslif (??????)
- xslchoose (?????)
43xslapply-templates (??????)
- xslapply-templates
- ??????????????
- ?????????(temlate) ????????????, ??????????
- xslapply-templates ??? xsltemplate ?,??????
- ltxslapply-templates /gt
- ltxslapply-templates select"??" /gt
44xslapply-templates ??-1
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt ltxslfor-each
select"??/????"gt ltxslapply-templates
/gt lt/xslfor-eachgt
lt/xsltemplategt ltxsltemplate match"??"gt
ltspan style"colorredfont-size18"gt
ltxslvalue-of /gt lt/spangt
lt/xsltemplategt ltxsltemplate match"??"gt
ltspan style"colorbluefont-size15"gt
ltxslvalue-of /gt lt/spangt lt/xsltemplategt
ltxsltemplate match"??"gt
ltpgtltxslvalue-of /gtlt/pgt lt/xsltemplategt lt/xsls
tylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex431_1.xsl"
type"text/xsl"?gt lt??gt lt????gt
lt??gt??lt/??gt lt??gt???lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt????gt lt??gt???lt/??gt
lt??gt????lt/??gt lt??gt?????,???????????,??????
lt/??gt lt/????gt lt????gt
lt??gt???lt/??gt lt??gt????lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
Ex431_1.xsl
??
45xslapply-templates ??-2
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt ltxslfor-each
select"??/????"gt ltxslapply-templates
/gt lt/xslfor-eachgt
lt/xsltemplategt ltxsltemplate match""gt
ltp style"colorredfont-size15"gt
ltxslvalue-of /gt lt/pgt
lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex431_3.xsl"
type"text/xsl"?gt lt??gt lt????gt
lt??gt??lt/??gt lt??gt???lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt????gt lt??gt???lt/??gt
lt??gt????lt/??gt lt??gt?????,???????????,??????
lt/??gt lt/????gt lt????gt
lt??gt???lt/??gt lt??gt????lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
Ex431_3.xsl
??
46xslapply-templates ??-3
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt ltxslfor-each
select"??/????"gt ltxslapply-templates
select"??" /gt ltxslapply-templates
select"??" /gt ltp/gt
lt/xslfor-eachgt lt/xsltemplategt
ltxsltemplate match"??"gt ltspan
style"colorredfont-size18"gt
ltxslvalue-of /gt lt/spangt
lt/xsltemplategt ltxsltemplate match"??"gt
ltspan style"colorbluefont-size24"gt
ltxslvalue-of /gt lt/spangt lt/xsltemplategt
ltxsltemplate match"??"gt
ltpgtltxslvalue-of /gtlt/pgt lt/xsltemplategt lt/xsls
tylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex432_1.xsl"
type"text/xsl"?gt lt??gt lt????gt
lt??gt??lt/??gt lt??gt???lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt????gt lt??gt???lt/??gt
lt??gt????lt/??gt lt??gt?????,???????????,??????
lt/??gt lt/????gt lt????gt
lt??gt???lt/??gt lt??gt????lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
??
Ex432_1.xsl
47XSL ??????
- xslvalue-of (????)
- xsltemplate (????)
- xslapply-templates (??????)
- xslfor-each (????)
- xslsort (????)
- xslif (??????)
- xslchoose (?????)
48Xslfor-each
- ??XML???????,???XSLT??????XML????
- ??
- ltxslfor-each select"booklist/book"gt
-
- lt/xslfor-eachgt
49xslfor-each (????)
- xslfor-each ?????XML??????????????
- xslfor-each ?????
- select tag-path ????
- order-by tag-path ?????
50xslfor-each ??-1 (??)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt ltxslfor-each
select"??/????"gt ltp style"colorblue"gt
ltxslvalue-of select"??" /gt
ltxslvalue-of select"??" /gtlt/pgt
ltpgtltxslvalue-of select"??" /gtlt/pgt
lt/xslfor-eachgt lt/xsltemplategt lt/xslstyleshee
tgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex424_1.xsl"
type"text/xsl"?gt lt??gt lt????gt
lt??gt??lt/??gt lt??gt???lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt????gt lt??gt???lt/??gt
lt??gt????lt/??gt lt??gt?????,???????????,??????
lt/??gt lt/????gt lt????gt
lt??gt???lt/??gt lt??gt????lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
Ex424_1.xsl
??
51xslfor-each ??-2 (??)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt lttable border"6"gt
ltxslfor-each select"??/????"gt lttrgt lttd
width"20"gtltxslvalue-of select"??" /gtlt/tdgt
lttd width"25"gtltxslvalue-of select"??" /gtlt/tdgt
lttdgtltxslvalue-of select"??" /gtlt/tdgt
lt/trgt lt/xslfor-eachgt lt/tablegt
lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex424_2.xsl"
type"text/xsl"?gt lt??gt lt????gt
lt??gt??lt/??gt lt??gt???lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt????gt lt??gt???lt/??gt
lt??gt????lt/??gt lt??gt?????,???????????,??????
lt/??gt lt/????gt lt????gt
lt??gt???lt/??gt lt??gt????lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
Ex424_2.xsl
??
52xslfor-each ??-3 (??)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt lttable border"6"gt ltxslfor-each
select"??/????" order-by"??"gt lttrgt lttd
width"15"gtltxslvalue-of select"??" /gtlt/tdgt
lttd width"20"gtltxslvalue-of select"??"
/gtlt/tdgt lttdgtltxslvalue-of select"??"
/gtlt/tdgt lt/trgt lt/xslfor-eachgt
lt/tablegt lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex424_3.xsl"
type"text/xsl"?gt lt??gt lt????gt
lt??gt??lt/??gt lt??gt???lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt????gt lt??gt???lt/??gt
lt??gt????lt/??gt lt??gt?????,???????????,??????
lt/??gt lt/????gt lt????gt
lt??gt???lt/??gt lt??gt????lt/??gt
lt??gt?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
Ex424_3.xsl
????
??
53xslfor-each ??-4 (Multiple)
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt lttable border"6"gt
ltxslfor-each select"??/????"gt lttrgt
lttd width"15"gtltxslvalue-of
select"??" /gtlt/tdgt lttd
width"15"gtltxslvalue-of select"??" /gtlt/tdgt
lttdgtltxslvalue-of select"??" /gtlt/tdgt
lt/trgt lt/xslfor-eachgt
lt/tablegt lttable border"6"gt
ltxslfor-each select"??/????"gt lttrgt
lttd width"15"gtltxslvalue-of
select"??" /gtlt/tdgt lttd
width"15"gtltxslvalue-of select"??" /gtlt/tdgt
lttdgtltxslvalue-of select"??" /gtlt/tdgt
lt/trgt lt/xslfor-eachgt
lt/tablegt lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet href"ex435_2.xsl"
type"text/xsl"?gt lt??gt lt????gt
lt??gt?? lt/??gt lt??gt??lt/??gt
lt??gt?????,???????????,??????lt/??gt
lt/????gt lt????gt lt??gt?? lt/??gt
lt??gt??lt/??gt lt??gt?????,???????????,??????lt/?
?gt lt/????gt lt????gt lt??gt??lt/??gt
lt??gt??lt/??gt lt??gt???????,???????????????
,????????lt/??gt lt/????gt lt/??gt
Ex435_2.xsl
54XSL ??????
- xslvalue-of (????)
- xsltemplate (????)
- xslapply-templates (??????)
- xslfor-each (????)
- xslsort (????)
- xslif (??????)
- xslchoose (?????)
55Xslsort (????)
- XSLT Script??????,????XML???????
- ??
- ltxslsort select"title" order"descending"/gt
- Select?????????
- Order?????????(ascending)????(descending)
- ????????xslfor-each?xslapply-templates????
??
56XSL ??????
- xslvalue-of (????)
- xsltemplate (????)
- xslapply-templates (??????)
- xslfor-each (????)
- xslsort (????)
- xslif (??????)
- xslchoose (?????)
57Xslif (??????)
- ?????,??XSLT????????,????
- ltxslif test???gt
-
- ltxslifgt
- ??
- ltxslif test_at_salesY gt
-
- ltxslifgt
??
58XSL ??????
- xslvalue-of (????)
- xsltemplate (????)
- xslapply-templates (??????)
- xslfor-each (????)
- xslsort (????)
- xslif (??????)
- xslchoose (?????)
59xslchoose (?????)
- ???????????,????
- Xslchoose?xslwhen?xslotherwise
- ??
- ltxslchoosegt
- ltxslwhen test???? gt
-
- lt/xslwhengt
- ltxslwhen test???? gt
-
- lt/xslwhengt
- ltxslotherwisegt
-
- lt/xslotherwisegt
- lt/xslchoosegt
??
60XSL ????? (FO)
- XSL????????56??????,???????????,???????
- ??????????
- ??(block)?????
- ??(Inline)?????
- ???????
- ???????
- ??????????
- ??(Out-of Line)?????
61?? XSL-FO
- XSL-FO ???????????????????????
- ????XSL ????????????(Namespace) fo ???
- fo xxxxxx
- fobasic-link
- fobidi-override
- foblock
62XML??????
- ????-xslcopy
- ??ltxslcopygtlt/xslcopygt
- ??XML??
- ????xslelement
- ltxslelement namecataloggt????lt/xslelementgt
- ???? ltcataloggt????ltcataloggt
- ????xslattribute
- ltxslelement namecataloggt
- ltxslattribute namecodegtA001lt/xslattributegt
- ????lt/xslelementgt
- ????ltcatalog codeA001gt????ltcataloggt
63xslcopy ?? -1
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet hrefex441_1.xsl"
type"text/xsl"?gt lt??gt lt???? ??"???"gt
lt?? ??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt??? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt ltxslcopygt
ltxslvalue-of /gt lt/xslcopygt
lt/xsltemplategt lt/xslstylesheetgt
Ex441_1.xsl
64xslcopy ?? -2
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet hrefex441_2.xsl"
type"text/xsl"?gt lt??gt lt???? ??"???"gt
lt?? ??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt??? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt ltxslfor-each
select"??/????"gt ltpgt ltxslcopygt
ltxslvalue-of /gt lt/xslcopygt
lt/pgt lt/xslfor-eachgt lt/xsltemplategt
lt/xslstylesheetgt
? xslfor-each ??? xslcopy ?????????????
Ex441_2.xsl
65xslnode-name ??
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt lttable border"5"gt
ltxslfor-each select"??/????"gt lttrgt
ltxslapply-templates/gt lt/trgt
lt/xslfor-eachgt lt/tablegt lt/xsltemplategt
ltxsltemplate match""gt lttd
style"colorred" width"10"gt
ltxslnode-name /gt lt/tdgt lttdgt
ltxslvalue-of /gt lt/tdgt
lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet hrefex443_1.xsl"
type"text/xsl"?gt lt??gt lt???? ??"???"gt
lt?? ??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt??? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
xslnode-name ????????
Ex443_1.xsl
66xslelement ??
lt?xml version"1.0" encoding"BIG5"
?gt ltxslstylesheet xmlnsxsl"urixsl"gt
ltxsltemplategt ltxslelement name"title"gt
ltxslvalue-of select"??/????/??" /gt
ltxslvalue-of select"??/????/_at_??" /gt
lt/xslelementgt lth3gt
ltxslvalue-of select"??/????/??" /gt ltbr/gt
ltxslvalue-of select"??/????/_at_??" /gt
ltbr/gt ltxslvalue-of select"??/????/??"/gt
lt/h3gt lt/xsltemplategt
lt/xslstylesheetgt
lt?xml version"1.0" encoding"BIG5" ?gt
lt?xml-stylesheet hrefex444_1.xsl"
type"text/xsl"?gt lt??gt lt???? ??"???"gt
lt?? ??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt?? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt???? ??"??"gt lt??
??"??"gt??? lt/??gt lt??gt
?????,???????????,?????? lt/??gt
lt/????gt lt/??gt
xslelement ?????? ?? nametitle ??????? show ?
browser ? Title ?
Ex444_1.xsl
67?????