第一章 XSLT的概念

2021-08-29 19:18:26 字數 2498 閱讀 3265

1.xslt的概念

1.1 什麼是xslt

1.2 為什麼要用xslt

1.3 xslt的歷史

1.4 什麼是xpath

1.5 xslt和css的比較

1.6 xslt和ie5

1.xslt的概念

我們首先來澄清乙個概念,大家可能聽說過xsl(extensible stylesheet language),xsl和我們這裡說的xslt從狹義上理解是一樣的,而按照w3c的標準,xslt的說法更嚴格些,因此我們在文章中統一使用 xslt的稱法。它們之間具體的關係我們會在下面講述。

1.1 什麼是xslt

xslt的英文標準名稱為extensible stylesheet language transformation。根據w3c的規範說明書(最早設計xslt的用意是幫助xml文件(document)轉換為其它文件。但是隨著發展,xslt已不僅僅用於將xml轉換為html或其它文字格式,更全面的定義應該是:

xslt是一種用來轉換xml文件結構的語言。

1.2 為什麼要用xslt

我們已經知道,xml是一種電腦程式間交換原始資料的簡單而標準的方法。它的成功並不在於它容易被人們書寫和閱讀,更重要的是,它從根本上解決了應用系統間的資訊交換。因為xml滿足了兩個基本的需求:

(1).將資料和表達形式分離。就象天氣預報的資訊可以顯示在不同的裝置上,電視,手機或者其它。

(2).在不同的應用之間傳輸資料。電子商務資料交換的與日俱增使得這種需求越來越緊迫。

為了使資料便於人們的閱讀理解,我們需要將資訊顯示出來或者列印出來,例如將資料變成乙個html檔案,乙個pdf檔案,甚至是一段聲音;同樣,為了使資料適合不同的應用程式,我們必須有能夠將一種資料格式轉換為另一種資料格式,比如需求格式可能是乙個文字檔案,乙個sql語句,乙個http資訊,一定順序的資料呼叫等。而xslt就是我們用來實現這種轉換功能的語言。將xml轉換為html,是目前xslt最主要的功能。

1.3 xslt的歷史

想很多其他xml家族成員一樣,xslt是由w3c起草和制定的。它的主要發展歷程如下:

.2023年由james clark提議;

.2023年8月正式提案為xsl;

.2023年5月由norman walsh完成需求概要;

.2023年8月18日xsl草案發布;

.2023年11月16日正式發布xsl 1.0推薦版本。

目前,xslt仍然在快速的發展中,xslt1.1的草案已經可以在w3c**(上看到。

1.4 什麼是xpath

xpath是xslt的重要組成部分,我們將在第四章講解它的詳細語法。那麼xpath是什麼呢?我們首先來了解一下xsl系列的"家族"關係。如下圖:

xsl 在轉換xml文件時分為明顯的兩個過程,第一轉換文件結構;其次將文件格式化輸出。這兩步可以分離開來並單獨處理,因此xsl在發展過程中逐漸**為 xslt(結構轉換)和xsl-fo(formatting objects)(格式化輸出)兩種分支語言,其中xsl-fo的作用就類似css在html中的作用。而我們這裡重點討論的是第一步的轉換過程,也就是 xslt。

另外,在學習xml時我們已經知道xml是乙個完整的樹結構文件。在轉換xml文件時可能需要處理其中的一部分(節點)資料,那麼如何查詢和定位xml文件中的資訊呢,xpath就是一種專門用來在xml文件中查詢資訊的語言。xpath隸屬xslt,因此我們通常會將 xslt語法和xpath語法混在一起說。

用一種比較好理解的解釋:如果將xml文件看作乙個資料庫,xpath就是sql查詢語言;如果將xml文件看成dos目錄結構,xpath就是cd,dir等目錄操作命令的集合。

1.5 xslt和css的比較

css同樣可以格式化xml文件,那麼有了css為什麼還需要xslt呢?因為css雖然能夠很好的控制輸出的樣式,比如色彩,字型,大小等,但是它有嚴重的侷限性,就是:

(1) css不能重新排序文件中的元素;

(2) css不能判斷和控制哪個元素被顯示,哪個不被顯示;

(3) css不能統計計算元素中的資料;

換句話說,css只適合用於輸出比較固定的最終文件。css的優點是簡潔,消耗系統資源少;而xslt雖然功能強大,但因為要重新索引xml結構樹,所以消耗記憶體比較多。

因此,我們常常將它們結合起來使用,比如在伺服器端用xslt處理文件,在客戶端用css來控制顯示。可以減少響應時間。

1.6 xslt和ie5

在 xslt草案發布不久,微軟就在ie4中提供了支援xsl功能的預覽版本,到ie5.0發布時,正式全面支援xslt,可是由於ie5發布的比 xslt1.0標準時間早,因此在ie5.0中支援的xstl功能和xslt 1.0略有不同。(呵呵~~xml推行的主要原因之一就是解決html過分依賴瀏覽器的問題,現在微軟又想標新立異?)。好在微軟的ie5.5中執行的標準已經和w3c的xslt1.0基本相近。但令人頭疼的是ie5.0已經發行了幾百萬套,您使用的xslt很可能不能被客戶的瀏覽器正確執行。目前 xslt 1.1仍在發展中,w3c及有關組織也在和微軟協商爭取獲得統一。呵呵~~故事還遠遠沒有結束噢。

注意:本文中提到的語法都是根據xslt 1.0的標準來講的,沒有任何微軟的"方言"。

XSLT輕鬆入門第一章 XSLT的概念

1.xslt的概念 1.1 什麼是xslt 1.2 為什麼要用xslt 1.3 xslt的歷史 1.4 什麼是xpath 1.5 xslt和css 的比較 1.6 xslt和ie5 1.xslt的概念 我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet lang...

XSLT輕鬆入門第一章 XSLT的概念

1.xslt的概念 1.1 什麼是xslt 1.2 為什麼要用xslt 1.3 xslt的歷史 1.4 什麼是xpath 1.5 xslt和css的比較 1.6 xslt和ie5 1.xslt的概念 我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet langu...

XSLT輕鬆進門第一章 XSLT的概念 3

1.5 xslt和css的比擬 css同樣可以格局化xml文件,那麼有了css為什麼還需要xslt呢?由於css固然能夠很好的把持輸出的樣式,比如色彩,字型,大小等,但是它有嚴重的侷限性,就是 1 css不能重新排序文件中的元素 2 css不能判定和把持哪個元素被顯示,哪個不被顯示 3 css不能統...