一直耳聞xsl,可是一直沒有使用過,這次由于項目的需要,只好用心好好研究一下,成果如下:
首先,要糾正一下,xsl并不是一種編程語言,它只是一種用來轉換xml的語言,這個有點類似我們的Spring的配置文件,是通過對xml語言的解析,來達到我們需要的目的,下面的例子,可以幫助你更好的理解這一點。
環境,在提到一個新的語言,我們一定會有兩個疑問,一個是,這個語言的編輯器是什么,這個語言的運行的環境又是什么?對于xsl來講,它的編輯器就是所有可以編輯xml的編輯器,例如記事本,editplus等等,運行的環境呢,這個更簡單,因為在IE5.0以上的版本,都加入了xsl的解析器。好啦,環境,編輯器都解決,下面來介紹一下什么是xsl。
首先要清楚一個問題,我們在訪問的時候,其實,訪問的是一個xml文件,那么這個文件的解析呢,是交給xsl來完成的,在需要被解析的xml中,會有這個元素告訴瀏覽器(解析器),解析我的xsl是什么?
1 <?xml-stylesheet type="text/xsl" href="hello.xsl"?>
這個href就是告訴瀏覽器,解析我的xsl是什么,那么xsl的內容是什么呢
1 <?xml version="1.0" encoding="iso-8859-1"?>
2
3 <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
4
5 <xsl:template match="/">
6
7 <html>
8
9 <head>
10
11 <title>First XSLT example</title>
12
13 </head>
14
15 <body>
16
17 <p><xsl:value-of select="greeting"/></p>
18
19 </body>
20
21 </html>
22
23 </xsl:template>
24
25 </xsl:stylesheet>
看出來了嗎,xsl是以<
xsl:stylesheet>標記作為開始和結束的內容,解析的模板為<
xsl:template>
模板里面的內容是不是很熟悉,看到了吧,這個是html的元素,想到了如果用到我們傳統的j2EE結構中,該如何與后臺進行交互了嗎,對了,就是解析這個核心的xml,好啦,這個是后話,現在將整個代碼貼出來,運行下,看看效果吧
hello.xml
1 <?xml version="1.0" encoding="iso-8859-1"?>
2
3 <?xml-stylesheet type="text/xsl" href="hello.xsl"?>
4
5 <greeting>Hello, world!</greeting>
hello.xsl
1 <?xml version="1.0" encoding="iso-8859-1"?>
2
3 <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
4
5 <xsl:template match="/">
6
7 <html>
8
9 <head>
10
11 <title>First XSLT example</title>
12
13 </head>
14
15 <body>
16
17 <p><xsl:value-of select="greeting"/></p>
18
19 </body>
20
21 </html>
22
23 </xsl:template>
24
25 </xsl:stylesheet>
26
27