2. xslt的例項
2.1 xslt如何轉換xml
2.2 乙個例項
2.3 過程解析
2.4 xslt的用途
2.1 xslt如何轉換xml
我們打個有趣的比方,你玩過橡皮泥吧,用不同的模子按上去,就可以做出需要的形狀。如果我們假設xml資料文件是一塊大橡皮泥,xslt就象是乙個模子,用力一按,就做出需要的形狀來---符合不同需要的html文件。
具體看下面的過程示意圖:
我們將xml原文件輸入,用xsl作為模板,通過轉換引擎,最終輸出需要的html文件。其中的轉換引擎就是比喻中"用力一按"的過程。在具體應用中,有專門的軟體來實現這個轉換過程,名為xml processor。目前已經有很多 processor 軟體(下面將詳細提到),在ie5.5中也已經內嵌了xml processor。
2.2 乙個例項
現在我們來看乙個簡單的xslt實際應用例子,獲得一些感官上的認識。很多網頁設計師看到類似html的**才會放心,**是那樣的親切和熟悉。
例子1: "hello, world!"
hello world作為第乙個教程已經是程式語言中的慣例了。我們也遵守這個慣例,看看如何利用xslt來顯示"hello world"。雖然這個例子沒有什麼實際用途,但是請大家不要急,後面還有更詳細的例子。
第一步:建立要輸入xml文件hello.xml。
<?xml version="1.0" encoding="iso-8859-1"?>
hello, world!
這是乙個很簡單xml文件,只包含乙個節點的xml結構樹。
<?xml version="1.0" encoding="iso-8859-1"?>
你現在可以用ie5.0以上版本瀏覽器開啟這個hello.xsl檔案,看到xsl的結構樹。
第三步:在xml中呼叫這個xsl檔案。修改hello.xml的**為:
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="hello.xsl"?>
hello, world!
ok,到這一步原理上已經完成了所有的**,接下來只要用乙個xslt的處理器(xml processor)來執行hello.xml就可以看到"hello
world"的顯示結果了。流行的處理器軟體有以下幾種:
有網友要問,我想在瀏覽器中看到"hello world"的效果應該怎麼做?在微軟的ie5.5內嵌了msxml3直譯器,你可以用ie5.5開啟hello.xml檔案,就可以看到結果。如果只看到xml結構樹,不是單獨的"hello
world"字樣,說明你的瀏覽器沒有安裝msxml3版本。
如果沒有安裝又想看效果怎麼辦?那還是用我們在xml教程中的老辦法,採用js實現。(這已經超出了本文要講的範圍,但為了更加直觀,便於理解,我們在這裡提供例項**。)下面是一種實現的**,可以儲存為hello.htm,和上面的hello.xml,hello.xsl放在同一目錄下面。最後用ie5.0以上版本開啟hello.htm就可以看到效果了。
2.3 過程解析
如果你成功的看到效果,你也許想知道這些**的具體含義,我們來詳細解說:看hello.xsl檔案
<?xml version="1.0" encoding="iso-8859-1"?>
這是標準的xml文件的首行**,因為xslt本身也是xml文件。encoding屬性用來定義文件使用的編碼形式,iso-8859-1主要支援西歐和北美的語言編碼。如果你想使用簡體中文,那麼就應該寫成:
<?xml version="1.0" encoding="gb2312"?>
接下去的**是:
xmlns:xsl=""
version="1.0">
這是標準的xslt檔案首行**。xsl:stylesheet**的意思是將文件作為乙個樣式表來(stylesheet)處理。xmlns: xsl屬性是乙個名字空間宣告,和xml中的名字空間使用方法一樣,用來防止元素名稱重複和混亂。其中字首xsl的意思是文件中使用的元素遵守w3c的 xslt規範。最後的version屬性說明樣式表只採用xslt
1.0的標準功能,這也是目前僅有的標準。
乙個元素定義乙個模板規則。屬性match="/"說明xml源文件中,這個模板規則作用的起點。"/"是一種xpath語法,我們在後面將詳細講述,這裡的"/"代表xml結構樹的根(root)。
接下去的**是:
說明:當模板規則被觸發,模板的內容就會控制輸出的結果。例子中,模板大部分內容由html元素和文字構成。只有元素是xslt語法,這裡的作用是拷貝原文件中的乙個節點的值到輸出文件。而select屬性則詳細指定要處理的節點名稱。這是xpath語法,"greeting"的意思就是尋找根節點名為greeting的元素,並用模板來處理這個節點。具體的就是找到元素,然後將元素的值"hello
world"按模板樣式拷貝到輸出檔案。
最後關閉所有元素:
好,例子解說完畢。你是否想過為什麼要用這麼複雜的方法來顯示"hello world"呢?
關鍵不在表面,而在於實質:用這種方法,hello world可以從xml文件中被提取出來,並用各種不同的xslt模板處理,來輸出不同需求的文件。我們來看看xslt的主要用途:
2.4 xslt的用途
xslt的主要用途就是資料轉換應用。
由於以xml為基礎的電子商務廣泛普及,xslt作為資料轉換的角色也越來越重要。例如直接將電視新聞的資料格式轉換成報紙新聞需要的資料格式;將**資料直接轉換成顯示在網頁上;對edi(電子資料交換)資料進行統計,排序等等。
xslt是處理類似工作的理想工具。
XSLT輕鬆入門第二章 XSLT的例項
2.xslt的例項 2.1 xslt如何轉換xml 2.2 乙個例項 2.3 過程解析 2.4 xslt的用途 2.1 xslt如何轉換xml 我們打個有趣的比方,你玩過橡皮泥吧,用不同的模子按上去,就可以做出需要的形狀。如果我們假設xml資料文件是一塊大橡皮泥,xslt就象是乙個模子,用力一按,就...
XSLT輕鬆入門第一章 XSLT的概念
1.xslt的概念 1.1 什麼是xslt 1.2 為什麼要用xslt 1.3 xslt的歷史 1.4 什麼是xpath 1.5 xslt和css 的比較 1.6 xslt和ie5 1.xslt的概念 我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet lang...
XSLT輕鬆入門第一章 XSLT的概念
1.xslt的概念 1.1 什麼是xslt 1.2 為什麼要用xslt 1.3 xslt的歷史 1.4 什麼是xpath 1.5 xslt和css的比較 1.6 xslt和ie5 1.xslt的概念 我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet langu...