Xslt

2,107 views

Published on

Published in: Design, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,107
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Xslt

  1. 1. XSLT 2009.06.16
  2. 2. 摘要 <ul><li>文獻探討 1 – XSLT 2.0 </li></ul><ul><li>文獻探討 2 – XPath </li></ul><ul><li>文獻探討 3 – 樣版系統 </li></ul><ul><li>使用 XSLT 實作樣版系統 </li></ul>
  3. 3. 文獻探討 1 - XSLT 2.0 <ul><li>XSLT(eXtensible Stylesheet Language Transformation) 本身也是一份標準的 XML 文件。 </li></ul><ul><li>XSLT 主要與 XML 文件搭配使用,有以下幾種用途: </li></ul><ul><ul><li>XML to XML </li></ul></ul><ul><ul><li>XML to XHTML </li></ul></ul><ul><ul><li>XML to Text </li></ul></ul><ul><li>大部分的瀏覽器皆支援 XSLT 處理器 (XSLT Processor) ,具有跨平台的優點,僅需撰寫一份 XSLT 文件即可運用在各平台之上。 </li></ul>
  4. 4. XSLT 與 CSS 的差異 <ul><li>What CSS Can Do </li></ul><ul><ul><li>Modify the font size, color, family, and style of text in markup. </li></ul></ul><ul><ul><li>Define the location and size of an element. </li></ul></ul><ul><ul><li>Change the background image and color of elements. </li></ul></ul><ul><ul><li>Create a new look and feel for markup pages to display on the Web. </li></ul></ul><ul><li>What XSLT Can Do </li></ul><ul><ul><li>Convert data in a standard XML format to SQL statements, tab-delimited text files, or other database formats for data sharing. </li></ul></ul><ul><ul><li>Transform XSLT style sheets into new style sheets. </li></ul></ul><ul><ul><li>Turn Web pages (written in XHTML) to VoiceML or XHTML Basic for handheld devices. </li></ul></ul><ul><ul><li>Add CSS style sheets to XML documents for view in a browser . </li></ul></ul>
  5. 5. XSLT 標籤介紹 <ul><li>XSLT 定義多種標籤,具有各種功能,以下針對幾種常用的標籤進行介紹: </li></ul><ul><ul><li><xsl:stylesheet></xsl:stylesheet> </li></ul></ul><ul><ul><li><xsl:template name=“” match=“”></xsl:template> </li></ul></ul><ul><ul><li><xsl:value-of select=“” /> </li></ul></ul><ul><ul><li><xsl:call-template name=“”></xsl:call-template> </li></ul></ul><ul><ul><li><xsl:call-param name=“” select=“”></xsl:call-param> </li></ul></ul><ul><ul><li><xsl:param name=“”></xsl:param> </li></ul></ul><ul><ul><li><xsl:element name=“”></xsl:element> </li></ul></ul><ul><ul><li><xsl:attribute name=“” value=“”></xsl:attribute> </li></ul></ul><ul><ul><li><xsl:if test=“”></xsl:if> </li></ul></ul><ul><ul><li><xsl:for-each></xsl:for-each> </li></ul></ul><ul><ul><li><xsl:import href=“”></xsl:import> </li></ul></ul>
  6. 6. 文獻探討 2 - XPath <ul><li>XPath 是一種查詢語言 , 但它不屬於 SQL 類的查詢語言,它只是一種尋找節點位置的語言,用來描述 XML 元素的位置,如同硬碟資料夾的檔案路徑。 </li></ul><ul><li>使用類似資料夾路徑一般的字串,定義出 XML 元素節點的位置,目前可被 XSLT 與 XPoint 所採用。 </li></ul><ul><li>XPath 具有一些位置路徑運算子與函數,可達成各種節點查詢。 </li></ul>
  7. 7. XPath 範例 lang.xml lang.xsl Result Source Code
  8. 8. 文獻探討 3 – 樣版系統 <ul><li>樣版系統的主要功能是將網頁的伺服端程式邏輯與客戶端的 HTML 內容進行分離的動作,使程式開發人員與版面設計人員能夠分工合作不互相影響程式檔案的修改。 </li></ul><ul><li>樣版系統通常具有一套專屬的代碼,樣板檔案在第一次或被修改過後執行時,透過樣板編譯器轉成可直接執行的程式,存於伺服器上供接下來的使用者讀取。 </li></ul><ul><li>伺服端程式負責處理資料並指派樣板變數名稱及變數資料,由樣板檔案取得變數及呈現。 </li></ul><ul><li>樣版系統提供變數存取、邏輯判斷及迴圈等功能,版面設計人員可自行決定頁面呈現的方式。 </li></ul>
  9. 9. 樣版系統的架構 - 以 Smarty 為例 一般樣版系統架構 Smarty 樣版系統架構
  10. 10. 使用 XSLT 實作樣版系統 <ul><li>相對於樣版系統, XML 文件是資料變數, XSLT 文件為樣板檔案、 XSLT Processor 則是樣板引擎。 </li></ul><ul><li>系統的 API 負責將結果資料輸出為 XML 文件,並指定 XSLT 文件進行結合後,轉換為 XHTML 於客戶端呈現結果。 </li></ul><ul><li>使用 XSLT Processor 有三種方式: </li></ul><ul><ul><li>伺服端 PHP XSLTProcessor </li></ul></ul><ul><ul><li>客戶端 JavaScript XSLTProcessor </li></ul></ul><ul><ul><li>瀏覽器 IE, Firefox … 等 </li></ul></ul>
  11. 11. XSLT 與各種樣版系統的比較 <ul><li>基於 XSLT 的特性皆能達成樣版系統的功能,但是系統皆統一以 XML 文件作為輸出格式,當需要以其他格式輸出時,可藉由建立新的 XSLT 文件進行轉換。例如資料集的輸出,可作為列表顯示,亦可依欄位數據轉為圖形表示,皆使用同一介面所輸出的資料。 </li></ul><ul><li>企業與企業間需要進行資料交換時,透過 XSLT 可將 XML 轉換成 XML ,以符合企業間交換資料的格式標準,因此 XSLT 不僅有作為樣版系統的能力,對資料型態的轉換也有很大的效益。 </li></ul><ul><li>在技術門檻中, XSLT 有較為複雜的功能,開發人員必須學習及熟悉此技術才能達成最大的效果,但目前其實已有許多的應用皆以 XSLT 為基礎進行延伸,且 XSLT 由 W3C 制定標準,是一個可靠且成熟的技術,因此選用 XSLT 技術作為樣版系統之上。 </li></ul>
  12. 12. 參考資料 <ul><li>The Difference Between CSS and XSLT - http://webdesign.about.com/library/weekly/aa101901a.htm </li></ul><ul><li>PHP Smarty 樣板引擎 </li></ul><ul><li>XSLT Cookbook – O’REILLY Sal Mangano </li></ul>

×