開啟主選單

求真百科

XSLT

在計算機科學中,可擴展樣式錶轉換語言(英語:Extensible Stylesheet Language Transformations,縮寫XSLT)是一種樣式轉換標記語言,可以將XML數據檔轉換為另外的XML或其它格式,如HTML網頁,純文字。XSLT最末的T字母表示英語中的「轉換」(transformation)。它是XSL規範中的一部分,目前最新的建議版本為XSL 3.0。

目錄

簡介

在計算機科學中,可擴展樣式錶轉換語言(英語:Extensible Stylesheet Language Transformations,縮寫XSLT)是一種樣式轉換標記語言,可以將XML數據檔轉換為另外的XML或其它格式,如HTML網頁,純文字。XSLT最末的T字母表示英語中的「轉換」(transformation)。它是XSL規範中的一部分,目前最新的建議版本為XSL 3.0。以XSLT進行格式轉換並不會變動原始的數據文件;而會以現有數據產生新的內容格式。作為輸入的通常是XML數據檔,或者由支持XQuery和XPath的數據模型處理器,其它來源的數據也能被轉換,例如關係數據庫表格或地理信息系統。XSL規範的另外一部分是XSLF(Formatting Objects,代表格式化對象),又稱XSL-FO或XSLFO,目前已逐漸被CSS 3.0所取代。XSLT是一種圖靈完備的語言,它可以指定計算機能運行的任何計算。

評價

XSLT處理器會取用一或多個XML源數據檔,加上一或多個XSLT樣式表,並處理它們以產生輸出文件。與廣泛實現的指令式編程語言(例如C編程語言)相反,XSLT是宣告式的。基本處理的範式是模式配比。模板規則只定義如何處理特定XPath模式相符的節點,而不是列出在具有狀態的環境中運行的一系列動作;處理器在遇到某一模式匹配時,那麼模板規則的內容就包含了,以函數式語句評估的直接成果:即結果樹,它是處理器輸出的基礎。處理器遵循固定的算法。首先,假設樣式表已經讀取和準備好了,處理器從輸入的XML數據檔創建來源代碼樹。然後處理來源樹的根節點,在樣式表中找到該節點相符的最佳模板,並評估模板的內容。每一個模板中的指令通常要求處理器在結果樹中產生節點,或者與根節點相同的方式,處理來源樹中的其它節點。從結果樹中獲取輸出。早期大多數的XSLT處理器都是解釋器。近來字節碼越來越普遍,使用可移植的中間語言(如Java字節碼或.NET中間語言)作為目標。然而,即使是解釋器的成品通常也提供單獨的分析和運行階段,允許在內存中創建優化的表達式樹,並可重複使用以運行多重轉換。在線上發行應用程序時,這方式有顯著的性能優勢,其中同樣的轉換每秒可多次應用在不同的來源檔之上。這種分離處理反映在XSLT處理器的應用編程接口(如JAXP)的設計中。早期XSLT處理器很少被優化過。讀取的樣式表成為文檔對象模型,而XSLT處理器會直接對它們產生作用。XPath引擎也沒有被優化過。但是漸增地,XSLT處理器利用了函數式編程和數據庫查詢語言中發現的優化技術,例如表達式樹的靜態重寫(例如,將計算移出循環),以及惰性的流評估來減少過程中所占內存的足跡(允許處理器對子表達式求值時,「提早退出」而不必運行全部,例如following-sibling::*[1])。許多處理器還使用比一般DOM實現更有效率(在空間和時間上)的樹表達式。[1]

參考文獻

  1. XSLT搜狗