DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> XSL語法介紹
XSL語法介紹
編輯:XML基礎     

 

例子已經放在上面,下面我們可以來仔細的分析其中的語法結果和關鍵所在:
  
    首先注意到的是,XSL文件本身即是一份 XML文件,所以在XSL文件的開頭,一樣有和XML文件相同的聲明。W3C這個XML的標准機構為XSL定義了很多標記(元素),XSL文件就是這些標記和HTML標記的組合。在XSL文件中,必須有如下一行的代碼:
  
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  
    這裡,xsl:stylesheet是XSL文件的根元素,在根元素中包含了所有的排版樣式,樣式表就是由這些排版樣式組合成的;xmlns:xsl="http://www.w3.org/TR/WD-xsl"這一句主要用來說明該XSL樣式表是使用W3C所制定的XSL,設定值就是XSL規范所在的URL地址。
  
    實際上,這裡"http://www.w3.org/TR/WD-xsl"就是一個名字空間(namespace),我們在上面關於XML Schema語法介紹的時候已經進行過介紹。這是一個標准的名字空間。"stylesheet","template","for-each"等等關鍵字都是這個名字空間所定義的。
  
    當然在xsl:stylesheet還可以設定其他的屬性,其他的屬性有:
  
     1. default-space:決定是否保留XML文件中的空白,僅當值為"default"時保留。
  
     2. indent-result:決定是否保留XSL文件中的空白,值為"yes"時保留。
  
     3. language:設定在XSL文件中使用的腳本語言。
  
    然後,我們在上面的代碼中看到有如下的代碼:
  
    <xsl:template match="/">
      ………
    </xsl:template>
  
    這裡實際上是表示了XSL解析器對XML文檔的處理過程,它從根節點(由match="/"決定,這裡"/"就表示根節點)開始,對XML文檔進行遍歷,並根據具體的代碼從XML文檔中取出相關的內容。這裡關於屬性match的取值是一個比較復雜的問題。它實際上表示的含義是從XML文檔中取出一個特定的節點集合(XML文檔可以被看成一個樹的結構,這個在後面關於XML解析器分析中有詳細的介紹)。這裡,我們通過幾個簡單的例子來說明屬性match的取值。
  
    比如下面一行代碼:
  
    <xsl:template match="/">
  
    這行代碼的意思是告訴XSL解析程序,當前需要處理的節點是根節點下的內容(用"/"來表示根節點),其實這裡的match值內容的編寫是要符合XPath的語意。關於XPath我們在後面的章節中會進行詳細的介紹。
  
    再舉一個例子:
  
    <xsl:template match="shoppingcart/item">
  
    這行代碼要匹配的是shoppingcart元素下的item元素。而不管shoppingcart在XML文檔結構樹下的哪一個位置。比如XML文檔的其中一段是這樣的。
  
    <shoppingcart>
    <item>
    <itemNo>3333</itemNo>
    <itemName>屠龍刀</itemName>
    </item>
    <item>
    <itemNo>4444</itemNo>
    <itemName>離別鉤</itemName>
    </item>
    </shoppingcart>
  
    那麼它匹配的內容就是
     <item>
     <itemNo>3333</itemNo>
     <itemName>屠龍刀</itemName>
     </item>
     <item>
     <itemNo>4444</itemNo>
     <itemName>離別鉤</itemName>
     </item>
  
    而下面這個例子:
  
    <xsl:template match="/shoppingcart/item">
  
  表示只匹配XML文檔根節點下的shoppingcart這個節點下的所有item元素。也就是說如果shoppingcart不是直接在根節點下的,它就不符合這個匹配條件。
  
    再看一個例子:
  
    <xsl:template match="price[@unit='USD']">
  
  這個例子

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved