什麼是XSLT,什麼是XPath

2021-04-20 05:13:32 字數 2406 閱讀 5751

1. 什麼是xslt

大家可能聽說過xsl(extensible stylesheet language),xsl和我們這裡說的xslt從狹義上理解是一樣的,而按照w3c的標準,xslt的說法更嚴格些,因此我們在文章中統一使用xslt的稱法。xslt的英文標準名稱為extensible stylesheet language transformation。根據w3c的規範說明書(

),最早設計xslt的用意是幫助xml文件(document)轉換為其它文件。但是隨著發展,xslt已不僅僅用於將xml轉換為html或其它文字格式,更全面的定義應該是:

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

2. 為什麼要用xslt

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

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

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

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**(

11)上看到。

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等目錄操作命令的集合。

5. xslt和css的比較

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

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

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

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

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

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

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的標準來講的,沒有任何微軟的"方言"。

xpath 資料:

xslt資料:

什麼是LVM 什麼是LV 什麼是VG

lvm logicl volume manager 邏輯卷管理器,通過使用邏輯卷管理器對硬碟儲存裝置進行管理,可以實現硬碟空間的動態劃分和調整。一 基本概念 1 物理卷 pv physical volume 物理卷在邏輯卷管理中處於最底層,它可以是實際物理硬碟上的分割槽,也可以是整個物理硬碟。2 捲...

什麼是IaaS?什麼是PaaS?什麼是SaaS?

最近有朋友問我,什麼是iaas?什麼是paas?什麼是saas?他們又有什麼分別?其實,雲計算發展到今天,這些當年看似新穎的概念,已經快爛大街了,從業者早就對這些概念習以為常,但是圈外人卻依然是丈二和尚摸不著頭腦。今天我就來為圈外人士來解答一下,什麼是iaas,什麼是paas,什麼是saas。先來說...

什麼是Rup 什麼是xp 什麼是敏捷過程?

1 什麼是rup?rup rational unified process 是ibm rational software提出的軟體工程實施過程,在業界經歷了數千個軟體專案的實踐,是當前最為成功的軟體工程方 之一!rup是一種迭代的 以架構為中心 的 用例驅動的軟體開發方法 rup是一種具有明確定義和...