第7講-XSL轉(zhuǎn)換-Ⅰ( SN3005 XML07).ppt_第1頁(yè)
第7講-XSL轉(zhuǎn)換-Ⅰ( SN3005 XML07).ppt_第2頁(yè)
第7講-XSL轉(zhuǎn)換-Ⅰ( SN3005 XML07).ppt_第3頁(yè)
第7講-XSL轉(zhuǎn)換-Ⅰ( SN3005 XML07).ppt_第4頁(yè)
第7講-XSL轉(zhuǎn)換-Ⅰ( SN3005 XML07).ppt_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三卷: 可擴(kuò)展樣式表語(yǔ)言 (Extensible Stylesheet Language),XSL轉(zhuǎn)換-,2,回顧,學(xué)會(huì)定義 Schema 區(qū)分 Schema 和 DTD 識(shí)別 XML Schema 中的元素 理解驗(yàn)證帶有 Schema 的 XML 文檔,3,目標(biāo),XSL 的基本概念 定義 XSL樣式表 理解 XSL 樣式表的結(jié)構(gòu)和語(yǔ)法 使用模板進(jìn)行元素匹配 XPath的概念和用法,4,什么是XSL,由于XML把主要精力放在數(shù)據(jù)的結(jié)構(gòu)而不是其顯示格式上,所以每個(gè)XML文檔的顯示都必須借助于額外的樣式表。(XSL、CSS),5,CSS只能處理簡(jiǎn)單的、順序固定的XML 文件,對(duì)于復(fù)雜的、高度結(jié)構(gòu)

2、化的XML文檔無(wú)能為力了。,要求: 將小組賽、決賽比賽球隊(duì),主隊(duì) 信息用紅色顯示,客隊(duì)信息 用藍(lán)色顯示; 將決賽球隊(duì)所有信息粗體、字體大小 為30pt顯示,小組賽用斜體顯示,將上述XML文檔按要求顯示,只能使用XSLT來(lái)轉(zhuǎn)換顯示XML文檔,6,使用XSL顯示XML文件,W3C組織推出XSL規(guī)范,包含一套元素集的XML語(yǔ)法規(guī)范來(lái)定義,把XML文檔數(shù)據(jù)提取出來(lái),轉(zhuǎn)換成HTML或XML文檔。 總體來(lái)說(shuō),XSL規(guī)范可以分為兩大部分: XSL轉(zhuǎn)換和XSL格式化對(duì)象,主要負(fù)責(zé)將XML源代碼轉(zhuǎn)化成為其他 的格式,即XSLT,采用XSL命名空間,提供大量的格式化命令,可用來(lái) 配合屏幕顯示和打印要求,精確 地設(shè)

3、定外觀(guān)。即FO,采用fo命名 空間,transformation,formatting,還有一個(gè)部分:XPath:識(shí)別、選擇和匹配XML文檔中的各種組成部分,7,XSLT概述,XSLT是一種將一個(gè)XML文檔轉(zhuǎn)換為其他結(jié)構(gòu)化文檔的語(yǔ)言。應(yīng)用廣泛,通常說(shuō)的XSL都是指XSLT。,源文檔,xml,文檔樹(shù)狀結(jié)構(gòu),XSL文檔,HTML文檔 XML文檔,XML解析器,XML處理器,遍歷,源文檔,目標(biāo)文檔,8,樣式表是格式良好的 XML 文檔。 樣式表的頂層元素如下所示: 要使 XML 文檔與 XSLT 規(guī)范相容,則需要將以下元素添加到 XML 文檔中:, ,XSL 樣式表的結(jié)構(gòu),樣式表的根元素, ,指明

4、XSL 樣式表的位置,9,文檔樹(shù)狀結(jié)構(gòu),XML處理器把XML文檔中的屬性、名字空間、處理指令和注釋等作為結(jié)點(diǎn)處理。 注:XSL有一個(gè)單獨(dú)的根結(jié)點(diǎn),它并不是XML的根元素,而是其父結(jié)點(diǎn)。 XSL處理器認(rèn)定的結(jié)點(diǎn)類(lèi)型包含以下7種: root comments elements processing instructions text namespaces attributes,區(qū)分根結(jié)點(diǎn)與根元素是為了讀取和處理序言中的指令,10,示例,畫(huà)出下列XML文檔的樹(shù)狀結(jié)構(gòu),11,樹(shù)狀結(jié)構(gòu)圖,Root,Team,Team,(根元素),12,模板規(guī)則和模式,一個(gè)XSL文檔包含一系列規(guī)則,其中包括模板規(guī)則(te

5、mplate rule) 一個(gè)模板規(guī)則有一個(gè)模式(pattern),該模式指定了它能夠作用的樹(shù)狀結(jié)構(gòu),當(dāng)模式匹配時(shí)就會(huì)按照模板規(guī)則輸出。 XSL處理器在掃描XML文檔時(shí),依次遍歷每一個(gè)結(jié)點(diǎn)。當(dāng)處理器找到與模板規(guī)則中的模式相匹配的結(jié)點(diǎn)時(shí),就會(huì)將模板規(guī)則應(yīng)用于該結(jié)點(diǎn)。 使用處理指令xml-stylesheet將XSL文檔與XML源文檔關(guān)聯(lián),XSL文檔以*.xsl擴(kuò)展名,13,示例,關(guān)聯(lián),匹配規(guī)則 模板,匹配規(guī)則 模板,模式,模式,14,XSLT文檔,XSLT文檔的根元素是xsl:stylesheet元素,xsl:template元素表示模板規(guī)則,xsl:template元素的match屬性表示模式

6、 xsl:stylesheet元素有兩個(gè)必要的屬性,version和xmlns:xsl,它們的值不能為空。,15,xsl:apply-templates元素、xsl:value-of元素和select屬性,xsl:apply-templates元素采用遞歸的方式遍歷指定結(jié)點(diǎn)的子結(jié)點(diǎn)??梢允褂胹elect屬性,若沒(méi)有出現(xiàn)select屬性所有的子元素都會(huì)被選擇。 xsl:value-of元素將源文檔的結(jié)點(diǎn)值復(fù)制到輸出文檔中,可以使用select屬性來(lái)確定復(fù)制哪個(gè)結(jié)點(diǎn)的值。,16,示例:匹配的過(guò)程-1,匹配過(guò)程,將根結(jié)點(diǎn)與樣式表中的所有 模板規(guī)則進(jìn)行比較,該結(jié)點(diǎn) 匹配第一個(gè)模板規(guī)則: xsl:tem

7、plate match=“/” 輸出標(biāo)記 xsl:apply-templates元素使得 處理器遍歷xml文檔中根結(jié)點(diǎn) 的子結(jié)點(diǎn)。 將根結(jié)點(diǎn)第一個(gè)子節(jié)點(diǎn) xml-stylesheet進(jìn)行匹配,沒(méi)有 匹配,不產(chǎn)生任何輸出。 根結(jié)點(diǎn)第二個(gè)子節(jié)點(diǎn) Matches與模板規(guī)則匹配, 輸出標(biāo)記,17,匹配的過(guò)程-2,匹配過(guò)程, xsl:apply-templates元素使得處理器遍歷xml文檔中Matches的所有子節(jié)點(diǎn) 將Matches元素的第一個(gè)子元素Match與模板規(guī)則進(jìn)行比較,有匹配 xsl:value-of元素將復(fù)制Match結(jié)點(diǎn)的Team子節(jié)點(diǎn)的值(Germany 4) 將Matches元素的

8、第二個(gè)子元素Match與模板規(guī)則進(jìn)行比較,有匹配 xsl:value-of元素將復(fù)制Match結(jié)點(diǎn)的Team子節(jié)點(diǎn)的值(Italy 6) 輸出標(biāo)記,輸出標(biāo)記 處理完畢,運(yùn)行結(jié)果:,如果與xsl:value-of所匹配的結(jié)點(diǎn)多于一個(gè),則只顯示第一個(gè),18,結(jié)果?,19,xsl:for-each元素,xsl:for-each使xslt依次處理多個(gè)元素,由select屬性值來(lái)確定依次要處理的xml文檔中的元素。,20,匹配結(jié)點(diǎn)的模式,利用match、select結(jié)點(diǎn)的匹配: ,匹配根結(jié)點(diǎn),匹配Matches的子結(jié)點(diǎn) Match,21,可以忽略中間結(jié)點(diǎn),選擇一個(gè)特定類(lèi)型的所有元素。匹配時(shí)不必考慮該結(jié)點(diǎn)

9、中間子結(jié)點(diǎn)、孫結(jié)點(diǎn)或級(jí)別更低的后代結(jié)點(diǎn)。,輸出Matches的子元素及 Team元素的Name子元素 的內(nèi)容,22,使用匹配屬性結(jié)點(diǎn),根據(jù)屬性選擇結(jié)點(diǎn),必須在該屬性名稱(chēng)前面加上符號(hào)作為前綴。,在默認(rèn)情況下,處理器不會(huì)遍歷屬性結(jié)點(diǎn),必須使用xsl:apply-template和一個(gè)相應(yīng)的select屬性來(lái)處理屬性結(jié)點(diǎn),23,示例,屬性結(jié)點(diǎn)匹配,xsl:value-of select=“Type” 代替模板規(guī)則,結(jié)果,24,使用comments()匹配注釋結(jié)點(diǎn),如果沒(méi)有明確指出,XSLT會(huì)完全忽略XML文檔中的注釋部分。使用comment()來(lái)選擇注釋。注意它不帶參數(shù)。,25,注意,在瀏覽器上不顯

10、示,26,使用processing-instruction()匹配處理指令結(jié)點(diǎn),處理指令同樣會(huì)被XSLT所忽略,用processing-instruction( 指令名)匹配處理指令。,27,使用或操作符|,XML文檔樹(shù)狀結(jié)構(gòu)中的一些不同類(lèi)型結(jié)點(diǎn)使用相同的匹配規(guī)則,可以用”|”來(lái)實(shí)現(xiàn)。,28,使用 XPath進(jìn)行測(cè)試,到目前為止,只是把結(jié)點(diǎn)的值顯示在瀏覽器上。如果要想測(cè)試匹配結(jié)點(diǎn)更多的細(xì)節(jié),可以使用 。,XPath表達(dá)式,XML路徑語(yǔ)言,29,示例,30,XSL 模板 8-2,模式的內(nèi)置模板規(guī)則:, ,元素節(jié)點(diǎn)和根節(jié)點(diǎn)的內(nèi)置模板規(guī)則:, ,第1條模板規(guī)則:匹配所有元素節(jié)點(diǎn)和根節(jié)點(diǎn),通知XSLT處理器依次處理當(dāng)前節(jié)點(diǎn)集包含的所有子節(jié)點(diǎn),第2條模板規(guī)則:匹配所有元素節(jié)點(diǎn)和根節(jié)點(diǎn),但指定了mode屬性,31,XSL 模板 8-3,文本節(jié)點(diǎn)和屬性節(jié)點(diǎn)的內(nèi)置模

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論