XSLT基礎(chǔ)_動(dòng)易Cms教程
大家可能聽說過XSL(eXtensible Stylesheet Language),XSL和我們這里說的XSLT從狹義上理解是一樣的,而按照W3C的標(biāo)準(zhǔn),XSLT的說法更嚴(yán)格些,因此我們?cè)谖恼轮薪y(tǒng)一使用XSLT的稱法。它們之間具體的關(guān)系我們會(huì)在下面講述。
一、 什么是XSLT
XSLT的英文標(biāo)準(zhǔn)名稱為eXtensible Stylesheet Language Transformation。根據(jù)W3C的規(guī)范說明書(http://www.w3.org/TR/xslt),最早設(shè)計(jì)XSLT的用意是幫助XML文檔(document)轉(zhuǎn)換為其它文檔。但是隨著發(fā)展,XSLT已不僅僅用于將XML轉(zhuǎn)換為HTML或其它文本格式,更全面的定義應(yīng)該是:
<>
二、為什么要用XSLT
我們已經(jīng)知道,XML是一種電腦程序間交換原始數(shù)據(jù)的簡單而標(biāo)準(zhǔn)的方法。它的成功并不在于它輕易被人們書寫和閱讀,更重要的是,它從根本上解決了應(yīng)用系統(tǒng)間的信息交換。因?yàn)閄ML滿足了兩個(gè)基本的需求:
(1)將數(shù)據(jù)和表達(dá)形式分離。就象天氣預(yù)告的信息可以顯示在不同的設(shè)備上,電視,手機(jī)或者其它。
(2)在不同的應(yīng)用之間傳輸數(shù)據(jù)。電子商務(wù)數(shù)據(jù)交換的與日俱增使得這種需求越來越緊迫。
為了使數(shù)據(jù)便于人們的閱讀理解,我們需要將信息顯示出來或者打印出來,例如將數(shù)據(jù)變成一個(gè)HTML文件,一個(gè)PDF文件,甚至是一段聲音;同樣,為了使數(shù)據(jù)適合不同的應(yīng)用程序,我們必須有能夠?qū)⒁环N數(shù)據(jù)格式轉(zhuǎn)換為另一種數(shù)據(jù)格式,比如需求格式可能是一個(gè)文本文件,一個(gè)SQL語句,一個(gè)HTTP信息,一定順序的數(shù)據(jù)調(diào)用等。而XSLT就是我們用來實(shí)現(xiàn)這種轉(zhuǎn)換功能的語言。將XML轉(zhuǎn)換為HTML,是目前XSLT最主要的功能。
三、什么是XPath
XPath是XSLT的重要組成部分,那么XPath是什么呢?
• XPath使用路徑表達(dá)式在XML文檔中進(jìn)行導(dǎo)航
• XPath包含一個(gè)標(biāo)準(zhǔn)函數(shù)庫
• XPath是XSLT中的主要元素
• XPath是一個(gè)W3C標(biāo)準(zhǔn)
XSL在轉(zhuǎn)換XML文檔時(shí)分為兩個(gè)過程,第一轉(zhuǎn)換文檔結(jié)構(gòu);其次將文檔格式化輸出。這兩步可以分離開來并單獨(dú)處理,因此XSL在發(fā)展過程中逐漸分裂為XSLT(結(jié)構(gòu)轉(zhuǎn)換)和XSL-FO(formatting objects)(格式化輸出)兩種分支語言,其中XSL-FO的作用就類似CSS在HTML中的作用。而我們這里重點(diǎn)討論的是第一步的轉(zhuǎn)換過程,也就是XSLT。
另外,在學(xué)習(xí)XML時(shí)我們已經(jīng)知道XML是一個(gè)完整的樹結(jié)構(gòu)文檔。在轉(zhuǎn)換XML文檔時(shí)可能需要處理其中的一部分(節(jié)點(diǎn))數(shù)據(jù),那么如何查找和定位XML文檔中的信息呢,XPath就是一種專門用來在XML文檔中查找信息的語言。XPath隸屬XSLT,因此我們通常會(huì)將XSLT語法和XPath語法混在一起說。
用一種比較好理解的解釋:假如將XML文檔看作一個(gè)數(shù)據(jù)庫,XPath就是SQL查詢語言;假如將XML文檔看成DOS目錄結(jié)構(gòu),XPath就是cd,dir等目錄操作命令的集合。
四、 XSLT和CSS的比較
CSS同樣可以格式化XML文檔,那么有了CSS為什么還需要XSLT呢?因?yàn)镃SS雖然能夠很好的控制輸出的樣式,比如色彩,字體,大小等,但是它有嚴(yán)重的局限性,就是:
(1) CSS不能重新排序文檔中的元素;
(2) CSS不能判定和控制哪個(gè)元素被顯示,哪個(gè)不被顯示;
(3) CSS不能統(tǒng)計(jì)計(jì)算元素中的數(shù)據(jù);
換句話說,CSS只適合用于輸出比較固定的最終文檔。CSS的優(yōu)點(diǎn)是簡潔,消耗系統(tǒng)資源少;而XSLT雖然功能強(qiáng)大,但因?yàn)橐匦滤饕齒ML結(jié)構(gòu)樹,所以消耗內(nèi)存比較多。
因此,我們經(jīng)常將它們結(jié)合起來使用,比如在服務(wù)器端用XSLT處理文檔,在客戶端用CSS來控制顯示�?梢詼p少響應(yīng)時(shí)間。
- MAC錯(cuò)誤的解決方法
- 如何屏蔽動(dòng)易后臺(tái)導(dǎo)航里的某個(gè)功能菜單?
- 動(dòng)易.NET版本留言自動(dòng)選定欄目方法
- 動(dòng)易SiteFactoty整合Discuz!NT3.0
- 在任意位置獲取根節(jié)點(diǎn)ID標(biāo)簽
- 如何開啟SiteWeaver6.8的支持,反對(duì)功能
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之四----動(dòng)易系統(tǒng)安裝篇
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之三----數(shù)據(jù)庫篇
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之二----IIS、目錄環(huán)境配置篇
- 數(shù)據(jù)庫修復(fù),SQL Server 2005內(nèi)部操作不一致的處理
- 如何安裝動(dòng)易.net程序權(quán)限配置
- 為什么提示對(duì)Windows系統(tǒng)文件夾下的Temp目錄沒有訪問權(quán)限?
- 相關(guān)鏈接:
- 教程說明:
動(dòng)易Cms教程-XSLT基礎(chǔ)
。