




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《XML技術(shù)基礎(chǔ)》第五章可擴(kuò)展樣式單語(yǔ)言回顧XML關(guān)于文檔瀏覽的基本思想是將數(shù)據(jù)與數(shù)據(jù)的顯示分別定義,文檔的顯示實(shí)際上是通過(guò)一個(gè)樣式單來(lái)描述的。
<?xml-stylesheettype="..."href="..."?>W3C已經(jīng)給出了兩種樣式單語(yǔ)言的推薦標(biāo)準(zhǔn):層疊樣式單CSS可擴(kuò)展樣式單語(yǔ)言XSL回顧:CSS的語(yǔ)法定義CSS的基本格式如下:
Selector{property:value;property:value;...}
Selector:選擇符,被施加樣式的元素,可以是標(biāo)記(tag)、.類名(class)、#標(biāo)識(shí)名(id)等Property:樣式屬性,可以是顏色、字體、背景等等。value:樣式屬性取值,決定樣式結(jié)果。例如本課目標(biāo):XSLCSS及其語(yǔ)法;XSL概述CSS與XSL的比較XML文檔結(jié)構(gòu)樹(shù)XSL的組成與工作原理XSL的基本結(jié)構(gòu)XSL模板X(qián)SL的元素語(yǔ)法動(dòng)態(tài)選擇XML文檔的顯示樣式小結(jié)XSL的元素語(yǔ)法XSL的動(dòng)態(tài)功能是通過(guò)XSL預(yù)定義元素來(lái)實(shí)現(xiàn)的,分為以下四類:匹配模式:這些元素都有match屬性定義模板<xsl:template>選擇模式:這些元素都有select屬性節(jié)點(diǎn)輸出語(yǔ)句<xsl:value-of>循環(huán)判斷語(yǔ)句<xsl:for-each>排序語(yǔ)名<xsl:sort>調(diào)用模板<xsl:apply-templates>測(cè)試模式:這些元素都有test屬性條件判斷語(yǔ)句<xsl:if>多條件判斷語(yǔ)句<xsl:choose>其他在結(jié)果樹(shù)中動(dòng)態(tài)創(chuàng)建各類節(jié)點(diǎn)導(dǎo)入外部XSL文檔返回目標(biāo)更多的XSL元素語(yǔ)法見(jiàn)XPATHViewer節(jié)點(diǎn)輸出語(yǔ)句<xsl:value-of>用來(lái)提取輸出XML文件中被選擇的元素或?qū)傩缘膬?nèi)容語(yǔ)法:功能:輸出指定節(jié)點(diǎn)的取值,用select屬性進(jìn)行限定<xsl:value-ofselect=“節(jié)點(diǎn)"/><?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns="/tr/REC-html40"><xsl:templatematch="/"><pstyle="color:blue">
<xsl:value-ofselect=“唐詩(shī)/五言絕句/作者”/>
<xsl:value-ofselect="唐詩(shī)/五言絕句/標(biāo)題"/></p><p>
<xsl:value-ofselect="唐詩(shī)/五言絕句/內(nèi)容"/></p></xsl:template></xsl:stylesheet><xsl:value-of>示例5.9.xsl返回到語(yǔ)法循環(huán)判斷語(yǔ)句<xsl:for-each>循環(huán)訪問(wèn)多個(gè)節(jié)點(diǎn),并按模板規(guī)則輸出節(jié)點(diǎn)語(yǔ)法:<xsl:for-eachselect=“節(jié)點(diǎn)”> <!--輸出內(nèi)容--></xsl:for-each>order-by屬性可將多個(gè)節(jié)點(diǎn)按某關(guān)鍵數(shù)據(jù)進(jìn)行排序循環(huán)判斷語(yǔ)句<xsl:for-each><?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns="/tr/REC-html40"><xsl:templatematch="/"><xsl:for-eachselect="唐詩(shī)/五言絕句"><pstyle="color:blue"><xsl:value-ofselect="作者"/>
<xsl:value-ofselect="標(biāo)題"/></p><p><xsl:value-ofselect="內(nèi)容"/></p></xsl:for-each></xsl:template></xsl:stylesheet>返回到語(yǔ)法5.10.xsl<xsl:sort><xsl:sort>元素用于對(duì)結(jié)果進(jìn)行排序。<xsl:sort>總是位于<xsl:for-each>或<xsl:apply-templates>內(nèi)部,對(duì)xsl:for-each或xsl:apply-templates元素選擇的節(jié)點(diǎn)集進(jìn)行排序。<xsl:sort>的語(yǔ)法格式為:<xsl:sortselect="XPathexpress"data-type="text|number|qname"order="ascending|descending"case-order="upper-first|lower-first"/><xsl:sort>(1)按字母順序排序。
<xsl:sortorder=“ascending”select=“@id”/><xsl:sortorder=“descending”select=“name”/>(2)按大小寫(xiě)排序。<xsl:sortcase-order=“upper-first”select=“@id”/><xsl:sortcase-order=“l(fā)ower-first”select=“name”/>(3)按數(shù)據(jù)類型排序。<xsl:sortdata-type="text"select="@id"/>
如對(duì)一組id數(shù)據(jù)101,2,44,305來(lái)說(shuō),排序結(jié)果是101,2,305,44。<xsl:sortdata-type="number"select="@id"/>
如對(duì)上面一組數(shù)據(jù)按數(shù)據(jù)類型排序,則排序結(jié)果是2,44,101,305。<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:templatematch="/"><tableborder="1"align="center"><caption>成績(jī)排名表</caption><tbody><xsl:apply-templatesselect="roster"/></tbody></table></xsl:template><xsl:templatematch="roster"><xsl:for-eachselect="student">
<xsl:sortselect="score"order="descending"data-type="number"/><tr><td><xsl:value-ofselect="name"/></td><td><xsl:value-ofselect="score"/></td> </tr></xsl:for-each></xsl:template></xsl:stylesheet>5.11.xsl返回到語(yǔ)法單條件判斷語(yǔ)句<xsl:if>對(duì)匹配條件進(jìn)行判斷,如果為真就執(zhí)行條件內(nèi)部的規(guī)則。語(yǔ)法用元素的名稱作為匹配條件<xsl:iftest="元素名稱">用元素內(nèi)容作為匹配條件<xsl:iftest="元素名稱='元素內(nèi)容'">用元素的屬性值作為匹配條件<xsl:iftest=“@屬性名稱[.='屬性值']">5.12.xsl返回到語(yǔ)法多條件判斷語(yǔ)句多條件的分支判斷(類似VB中的select語(yǔ)句)語(yǔ)法<xsl:choose> <xsl:whentest=“匹配模式”> <!--輸出內(nèi)容--> </xsl:when> <xsl:whentest=“匹配模式”> <!--輸出內(nèi)容--> </xsl:when> …. <xsl:otherwise> <!--輸出內(nèi)容--> </xsl:otherwise></xsl:choose>5.13.xsl返回到語(yǔ)法在結(jié)果樹(shù)中動(dòng)態(tài)添加注釋XSL是動(dòng)態(tài)的樣式單語(yǔ)言,用戶不僅可以從源XML文檔里提取相關(guān)的數(shù)據(jù),而且可以直接在結(jié)果樹(shù)中動(dòng)態(tài)地創(chuàng)建各類節(jié)點(diǎn):<xsl:comment>元素用于在結(jié)果樹(shù)中創(chuàng)建注釋節(jié)點(diǎn);<xsl:element>元素用于在輸出文檔中創(chuàng)建元素節(jié)點(diǎn);<xsl:attribute>元素用于向元素添加屬性;<xsl:processing-instruction>元素可向輸出寫(xiě)一條處理指令,動(dòng)態(tài)生成處理指令節(jié)點(diǎn);<xsl:text>元素用于向輸出寫(xiě)文本,通過(guò)樣式表生成文本節(jié)點(diǎn)。動(dòng)態(tài)創(chuàng)建標(biāo)記及設(shè)置屬性動(dòng)態(tài)增加元素
<xsl:elementname=“元素名”>
元素值
</xsl:element>動(dòng)態(tài)增加屬性:
<元素>
<xsl:attributename=“屬性名“>屬性值</xsl:attribute>
</元素>例:
<tr>
<xsl:attributename=“title”>
<!--屬性值放在這-->
</xsl:attribute>
</tr>5.14.xsl返回到語(yǔ)法導(dǎo)入外部XSL文檔XSL提供了兩個(gè)元素允許用戶在XSL文檔中導(dǎo)入外部樣式單。1、xsl:include元素xsl:include元素應(yīng)用包含機(jī)制,直接將外部的樣式單復(fù)制到xsl:include元素所在的位置。<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:include
href=“URI"/>……</xsl:template>
只能作為頂級(jí)元素來(lái)使用xsl:include元素例題<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns="/tr/REC-html40"><xsl:templatematch="/"> <xsl:for-eachselect="唐詩(shī)/五言絕句"> <xsl:apply-templatesselect="標(biāo)題"/> <xsl:apply-templatesselect="內(nèi)容"/></xsl:for-each></xsl:template><xsl:templatematch="標(biāo)題"><Pstyle="color:blue;font-size:30"><xsl:value-ofselect="."/></P></xsl:template><xsl:include
href="included.xsl"/></xsl:stylesheet>included.xsl<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:templatematch="內(nèi)容"><Pstyle="color:red"><xsl:value-ofselect="."/></P></xsl:template></xsl:stylesheet>導(dǎo)入外部XSL文檔2、xsl:import元素xsl:import元素用于導(dǎo)入外部的樣式單,被導(dǎo)入的樣式單規(guī)則總是比導(dǎo)入者的規(guī)則低,導(dǎo)入者可以使用xsl:apply-imports來(lái)應(yīng)用導(dǎo)入的樣式單。<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:import
href=“URI"/>……<xsl:templatematch=“節(jié)點(diǎn)"><xsl:apply-imports/></xsl:template></xsl:template>
只能作為頂級(jí)元素來(lái)使用xsl:import元素例題<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns="/tr/REC-html40"><xsl:import
href="imported.xsl"/><xsl:templatematch="/"> <xsl:for-eachselect="唐詩(shī)/五言絕句"> <xsl:apply-templatesselect="標(biāo)題"/> <xsl:apply-templatesselect="內(nèi)容"/></xsl:for-each></xsl:template><xsl:templatematch="標(biāo)題"><xsl:apply-imports/></xsl:template><xsl:include
href="included.xsl"/></xsl:stylesheet>
imported.xsl<?xmlversion="1.0"encoding="UTF-8"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns:fo="/1999/XSL/Format"> <xsl:templatematch="標(biāo)題"> <Pstyle="color:blue;font-size:30"> <xsl:value-ofselect="."/> </P> </xsl:template></xsl:stylesheet>返回到語(yǔ)法動(dòng)態(tài)選擇XML文檔的顯示樣式table8-21.xsllist8-20.xsl8.18.xml<?xmlversion="1.0"encoding="gb2312"?><網(wǎng)上書(shū)屋><書(shū)籍><書(shū)名>RedHatLinux系統(tǒng)管理大全</書(shū)名><作者>ThomasSchenk</作者><出版社>機(jī)械工業(yè)出版社</出版社></書(shū)籍><書(shū)籍><書(shū)名>中文版WindowsNT技術(shù)支持培訓(xùn)教程</書(shū)名><作者>MicrosoftPress</作者><出版社>人民郵電出版社</出版社></書(shū)籍>……</網(wǎng)上書(shū)屋>list8-20.xsl<?xmlversion='1.0'encoding="gb2312"?><xsl:stylesheet
xmlns:xsl="/TR/WD-xsl"
xmlns="/TR/REC-html40"><xsl:templatematch="/"><html><head> <title>網(wǎng)上書(shū)屋</title></head><body><xsl:apply-templates/></body></html></xsl:template><xsl:templatematch="網(wǎng)上書(shū)屋"><h1>阿當(dāng)網(wǎng)上書(shū)屋</h1><ol><xsl:apply-templates/> </ol></xsl:template><xsl:templatematch="書(shū)籍"><li><b><xsl:value-ofselect="書(shū)名"/></b></li><br/>作者:<xsl:value-ofselect="作者"/><br/>出版社:<xsl:value-ofselect="出版社"/></xsl:template></xsl:stylesheet>table8-21.xsl<?xmlversion='1.0'encoding="gb2312"?><xsl:stylesheet
xmlns:xsl="/TR/WD-xsl"
xmlns="/TR/REC-html40"><xsl:templatematch="/"><html><head> <title>網(wǎng)上書(shū)屋</title></head><body><xsl:apply-templates/></body></html></xsl:template><xsl:templatematch="網(wǎng)上書(shū)屋"><center><h1>阿當(dāng)網(wǎng)上書(shū)屋</h1><tableborder="1"><th>書(shū)名</th><th>作者</th><th>出版社</th><xsl:apply-templates/> </table></center></xsl:template><xsl:templatematch="分類"><xsl:apply-templates/> </xsl:template><xsl:templatematch="書(shū)籍"><tr><td><xsl:value-ofselect="書(shū)名"/></td><td><xsl:value-ofselect="作者"/></td><td><xsl:value-ofselect="出版社"/></td></tr></xsl:template></xsl:stylesheet>DSO_XSL8-22.html<html><head><title>DSO與XSL轉(zhuǎn)換</title><scriptlanguage="JavaScript">functionload1(){
var
xmlDso=sdb.XMLDocument;
var
xslDso=Styl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工遣散補(bǔ)償協(xié)議書(shū)
- 資料交接協(xié)議書(shū)范文
- 違反增資入股協(xié)議書(shū)
- 政府單方解除協(xié)議書(shū)
- 牙齒矯正協(xié)議書(shū)圖文
- 責(zé)任劃分協(xié)議書(shū)模板
- 土地承包放棄協(xié)議書(shū)
- 中港車牌借用協(xié)議書(shū)
- 他人簽字轉(zhuǎn)讓協(xié)議書(shū)
- 蘭州拉面加盟協(xié)議書(shū)
- 2024年蘇州市軌道交通集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 網(wǎng)絡(luò)營(yíng)銷:推廣與策劃(第3版 慕課版)課件 項(xiàng)目三感悟網(wǎng)絡(luò)營(yíng)銷策略(知識(shí)基石)
- 膀胱癌護(hù)理業(yè)務(wù)學(xué)習(xí)課件
- 動(dòng)物的遷徙行為與地球生態(tài)系統(tǒng)
- LY-T 3332-2022 森林保險(xiǎn)查勘定損技術(shù)規(guī)程
- 總成修理工安全操作規(guī)程
- 2023年10月自考試題00341公文寫(xiě)作與處理
- 2025年日歷日程表含農(nóng)歷可打印
- 校園金話筒大賽(臨沂賽區(qū))策劃書(shū)
- 讀書(shū)分享讀書(shū)交流會(huì)《朝聞道》劉慈欣科幻小說(shuō)讀書(shū)分享
- 《電力工程電纜設(shè)計(jì)規(guī)范》
評(píng)論
0/150
提交評(píng)論