佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > XSLT輕松入門第一章:XSLT的概念

XSLT輕松入門第一章:XSLT的概念

熱門標(biāo)簽:檢查注冊表項(xiàng) 網(wǎng)站文章發(fā)布 呼叫中心市場需求 服務(wù)器配置 智能手機(jī) 銀行業(yè)務(wù) 鐵路電話系統(tǒng) 美圖手機(jī)

1.XSLT的概念

1.1 什么是XSLT
1.2 為什么要用XSLT
1.3 XSLT的歷史
1.4 什么是XPath
1.5 XSLT和CSS的比較
1.6 XSLT和IE5

1.XSLT的概念

我們首先來澄清一個(gè)概念,大家可能聽說過XSL(eXtensible Stylesheet Language),XSL和我們這里說的XSLT從狹義上理解是一樣的,而按照W3C的標(biāo)準(zhǔn),XSLT的說法更嚴(yán)格些,因此我們在文章中統(tǒng)一使用XSLT的稱法。它們之間具體的關(guān)系我們會(huì)在下面講述。

1.1 什么是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是一種用來轉(zhuǎn)換XML文檔結(jié)構(gòu)的語言。

1.2 為什么要用XSLT

我們已經(jīng)知道,XML是一種電腦程序間交換原始數(shù)據(jù)的簡單而標(biāo)準(zhǔn)的方法。它的成功并不在于它容易被人們書寫和閱讀,更重要的是,它從根本上解決了應(yīng)用系統(tǒng)間的信息交換。因?yàn)閄ML滿足了兩個(gè)基本的需求:

(1).將數(shù)據(jù)和表達(dá)形式分離。就象天氣預(yù)報(bào)的信息可以顯示在不同的設(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最主要的功能。

1.3 XSLT的歷史

想很多其他XML家族成員一樣,XSLT是由W3C起草和制定的。它的主要發(fā)展歷程如下:

.1995年由James Clark提議;

.1997年8月正式提案為XSL;

.1998年5月由Norman Walsh完成需求概要;

.1998年8月18日XSL草案發(fā)布;

.1999年11月16日正式發(fā)布XSL 1.0推薦版本。

目前,XSLT仍然在快速的發(fā)展中,XSLT1.1的草案已經(jīng)可以在W3C網(wǎng)站(http://www.w3.org/TR/xslt11)上看到。

1.4 什么是XPath

XPath是XSLT的重要組成部分,我們將在第四章講解它的詳細(xì)語法。那么XPath是什么呢?我們首先來了解一下XSL系列的"家族"關(guā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等目錄操作命令的集合。

 

1.5 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)存比較多。

因此,我們常常將它們結(jié)合起來使用,比如在服務(wù)器端用XSLT處理文檔,在客戶端用CSS來控制顯示??梢詼p少響應(yīng)時(shí)間。

1.6 XSLT和IE5

在XSLT草案發(fā)布不久,微軟就在IE4中提供了支持XSL功能的預(yù)覽版本,到IE5.0發(fā)布時(shí),正式全面支持XSLT,可是由于IE5發(fā)布的比XSLT1.0標(biāo)準(zhǔn)時(shí)間早,因此在IE5.0中支持的XSTL功能和XSLT 1.0略有不同。(呵呵~~XML推行的主要原因之一就是解決HTML過分依賴瀏覽器的問題,現(xiàn)在微軟又想標(biāo)新立異?)。好在微軟的IE5.5中執(zhí)行的標(biāo)準(zhǔn)已經(jīng)和W3C的XSLT1.0基本相近。但令人頭疼的是IE5.0已經(jīng)發(fā)行了幾百萬套,您使用的XSLT很可能不能被客戶的瀏覽器正確執(zhí)行。目前XSLT 1.1仍在發(fā)展中,W3C及有關(guān)組織也在和微軟協(xié)商爭取獲得統(tǒng)一。呵呵~~故事還遠(yuǎn)遠(yuǎn)沒有結(jié)束噢。

注意:本文中提到的語法都是根據(jù)XSLT 1.0的標(biāo)準(zhǔn)來講的,沒有任何微軟的"方言"。

標(biāo)簽:紅河 樂山 長治 滄州 上海 沈陽 新疆 河南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《XSLT輕松入門第一章:XSLT的概念》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    共和县| 黔西| 岳阳县| 威信县| 丰都县| 金乡县| 浮梁县| 穆棱市| 马关县| 甘南县| 博罗县| 胶南市| 峨眉山市| 珲春市| 内乡县| 云南省| 七台河市| 青神县| 霍城县| 深泽县| 东辽县| 怀宁县| 陆河县| 沙洋县| 洪江市| 郧西县| 分宜县| 南汇区| 新和县| 神木县| 青田县| 青冈县| 皋兰县| 白玉县| 鄂尔多斯市| 邮箱| 闽清县| 沾益县| 马公市| 太原市| 清流县|