何謂XSLT
其實XSLT只是將XML理轉換成其他格式而已,我們透過XSLT處理器可以將XML文件
照者Template-Driven的轉換Script程式碼來產生轉換結果
XML他可以轉換成樹狀結構,其是XSLT就是把一個XML的樹 使用XSLT轉換成tree的
在修改一下node 最後產生另一棵樹
其實XML配合XSLT我們就能支援在HTML上顯示文件了
而XPath是一種語言, 他是用來描述XML的位置 他可以用來尋找node 不過要記得他不屬於SQL查詢的語言
使用類似資料夾路徑一般的字串, 定義出XML元素節點的位置, 目前可被XSL與XPoint所採用.
"/" 根節點下所有XML元素
"//ABC" 根節點下面所有ABC元素
"." 目前你所在的節點
".." 父節點
" /XYZ/item/*" 使用*顯現出XYZ下的所有元素
XSLT是擴展樣式表轉換語言(Extensible Stylesheet Language Transformations)的簡稱
一種對XML檔案進行轉化的語言
它是XSL(Extensible stylesheet language)規範的一部分。XSL規範的另外一部分是XSL-FO(FO代表格式化對象Formatting Objects)。
XSLT是把XML檔案轉化為另一檔案的轉換語言,即將源檔案的所有數據或者部分數據,利用XPath進行選擇,生成另外的XML檔案或者其他可直接顯示或列印的文件格式(例如 HTML文件、RTF文件或者TeX文件)。
XSLT本身也是一份XML檔案,所以它也必須遵守嚴格的XML規範
來源 維基百科
XSL=可延伸樣式語言。(Extensible Stylesheet Language)
XSL是用來定義XML文件的一種標籤語言。
XSL把一系列的規則集合在一起,把這些資料從XML中取出,再把它轉換成HTML的格式文件。
XSL允許對整份文件坐讀寫以及重新讀寫的能力。
XSL是XML中的格式語言重新鑄造並且複製CSS的功能性,以及增加更強的的格式話和轉換的能力。
XSL與XSLT之間的轉換是經過漫長時間進化的結果。
XSL的中心是替不同的媒介轉換與處理文件,故XSL能夠用來管理複雜的多媒體文件系統。
組成XSL有三個元素:適合XSL的可延聲樣式表語言,XSLT可延伸樣式表語言轉換,Xpath-XML的途徑語言。
XSL有一龐大的物體格式化列表,就像是CSS的特性。
XSL的格式化物件有一種與其他物件連結的特性,會依附物件的不同型態而有不同的連結。
XSLT是一種把XML轉換成XHTML或者其他的XML的語言。
XPath是一種操作XML的語言。(XSLT通過XPath操作XML檔)
XSLT通過對XPath的使用來找尋XML中的信息。XPath用于操作XML文件中的元素和属性。
XSLT代表XSL轉換(XSL Transformations,是XSL的最重要的一部分。
XSLT可以把XML轉換成另一個XML檔,或者轉換成另一種被遊覽器所識別的如HTML和XHTML類型的文件。通常情况下,XSLT是通過把每个XML元素轉換成(X)HTML文件來完成的。
通过XSML,你可以從已輸出的文件里添加/移除元素和属性。你也可以把元素重新排列和分類,執行測試,决定是隱藏還是顯示元素,或者實現其它更多的功能。
XPath是用來判斷XML文件中的某特定部分。
XPath也有不少函式可以用來處理不同的資料類別,像是數字,字串之類的。
XPath並非把XML文件當成字串來處理,而是把它當成一棵樹,可以用來判斷文件中的節點,像是元素、屬性、文字節點。
XPath也有定義路徑符號,用來指出文件中的特定節點集,就像是檔案系統。
但一般的檔案路徑跟XPath的路徑還是有點不同,因為XPath所指定的路徑是節點集而並不是單一的節點。
但如果XPath是選到單一個節點,則表示在那個節點集裡只有被選到的那個單一節點。
而若是XPath沒有選擇到任何節點,則表示那是一個空的節點集。
XPath回傳的結果是一個物件,而物件有以下幾種基本的類型:
節點集--顧名思義,就是節點的集合,但節點不能重複。
字串--一堆字元所串連起的序列。
布林值--只有兩種可能true跟false。
數字--主要為一種浮點數。
當使用XPath時可以避免XML文件結構的改變或是節點選擇邏輯的改變所產生的問題。
而XSLT則是可以把XML文件轉換成其他種種類的文件。
XSLT是將執行的結果用樹狀的結構來呈現出來。
利用XSLT我們可以把輸入的XML文件(可能是元素或屬性)插到模板當中在產生結果樹。
XPath即為XML路徑語言(XML Path Language),它是一種用來確定XML文檔中某部分位置的語言。
XPath是基於XML的樹狀結構,提供在資料結構樹中找尋節點的能力。
起初 XPath 的提出的初衷是將其作為一個通用的、介於XPointer與XSL間的語法模型。
但是 XPath 很快的被開發者採用來當作小型查詢語言。
XPath2.0
在W3C建議下,XPath 1.0於1999年11月16日發表。XPath 2.0目前正在W3C審核過程的最終階段。
XPath 2.0表達了XPath語言在大小與能力上顯著的增加。
最值得大書特書的改變是XPath 2.0有了更豐富的型別系統;XPath 2.0支援不可分割型態,如在XML Schema內建型態定義一樣,並且也可自綱要(schema)導入用戶自定型別。現在每個值都是一個序列(一個單一不可分割值或節點都被視為長度一的序列)。
XPath 1.0節點組被節點序列取代,它可以是任何順序。
為了支援更豐富的型別組,XPath 2.0提供相當延展的函式與操作子群。
XPath 2.0實際上是XQuery 1.0的子集合。
它提供了一個for表達式。該式是XQuery裡「FLWOR」表達式的縮減版。利用列出XQuery省去的部分來描述該語言是可能的。
主要範例是查詢前導語(query prolog)、元素和屬性建構式、「FLWOR」語法的餘項式、以及typeswitch 表達式。
-------------------------------------------------------------------------------------------------------------------------
經過XPath1.0 到 2.0的發展 XPath 在 以XML的樹狀結構為前提下 能提供更快更便捷的節點搜尋的能力。
同時 更加入 更豐富的型別組 更延展的函式與操作子群 使得 使用者更能靈活的加以應用。
參考: 維基百科