一. XSL入門
1.XSL---XML的樣式表
HTML網(wǎng)頁(yè)使用預(yù)先確定的標(biāo)識(shí)(tags),這就是說(shuō)所有的標(biāo)記都有明確的含義,例如
是另起一行
是標(biāo)題字體。所有的瀏覽器都知道如何解析和顯示HTML網(wǎng)頁(yè)。
然而,XML沒(méi)有固定的標(biāo)識(shí),我們可以建立我們自己需要的標(biāo)識(shí),所以瀏覽器不能自動(dòng)解析它們,例如Title | Artist |
---|---|
在上面的代碼中, xsl:for-each元素的作用是定位XML文檔中的哪些元素需要按以下模板顯示。select屬性用來(lái)定義源文件中的元素名。指定屬性的這種語(yǔ)法又稱為XML
Pattern(模式),類似文件子目錄的表示形式。xsl:value-of元素用來(lái)在當(dāng)前層次中插入子元素的內(nèi)容模板。
因?yàn)閄SL樣式表自身也是一個(gè)XML文檔,因此,XSL文件的開(kāi)頭以一個(gè)XML聲明開(kāi)始。 xsl:stylesheet元素用來(lái)聲明這是一個(gè)樣式表文件。match="/">語(yǔ)句表示XML的源文檔在當(dāng)前目錄下。
如果為XML文檔加上XSL樣式表,看下面代碼第2行,你的瀏覽器就可以精確的將XML 文檔轉(zhuǎn)換為HTML文件。
Bob Dylan
USA
Columbia
10.90
1985
三. XSL--在客戶端的實(shí)現(xiàn)
1.JavaScript解決方案
在上面的章節(jié)中我們已經(jīng)解釋了XSL是如何將XML轉(zhuǎn)換成HTML文件。方法就是在XML文檔的頭部加入一個(gè)XSL樣式表信息,然后讓瀏覽器執(zhí)行轉(zhuǎn)換過(guò)程。
這種方法在大部分情況下都做得很好,但是在不支持XML的瀏覽器中就無(wú)法正確顯示了。
一個(gè)更好的更全面的解決方案是使用Javascript來(lái)實(shí)現(xiàn)XML到HTML的轉(zhuǎn)換。但是使用JavaScript必須得到以下功能支持:
a.允許Javascript代替瀏覽器進(jìn)行細(xì)節(jié)檢測(cè);
b.根據(jù)不同的需要和不同的瀏覽器使用不同的樣式表。
對(duì)于XSL來(lái)說(shuō)這是完全可行的。設(shè)計(jì)XSL的目標(biāo)之一就是允許將一種格式轉(zhuǎn)換成另一種格式,支持不同的瀏覽器,支持不同的用戶需求。未來(lái)的瀏覽器的重要任務(wù)就是在客戶端執(zhí)行XSL的轉(zhuǎn)換工作。
2.一個(gè)具體的實(shí)例
下面是我們上面提到的一個(gè)XML文檔(cd_catalog.xml)例子的部分代碼:
Bob Dylan
USA
Columbia
10.90
1985
.
.
.
下面是完整的XSL文件(cd_catalog.xsl):
Title | Artist |
---|---|
注意,現(xiàn)在XML文件還沒(méi)有加入XSL樣式表,還沒(méi)有被轉(zhuǎn)換成HTML文件。
下面是用JavaSript來(lái)實(shí)現(xiàn)最后轉(zhuǎn)換的HTML代碼:
上面代碼中使用了Javascript,如果你不知道如何寫(xiě)JavaScript,您最好專門學(xué)習(xí)一下。
第一段代碼建立一個(gè)Microsoft Parser(XMLDOM)解析的對(duì)象,并將XML文檔讀入內(nèi)存;第二段代碼建立另外一個(gè)對(duì)象并導(dǎo)入XSL文檔;最后一行代碼將XML文檔用XSL文檔轉(zhuǎn)換,并將結(jié)果輸出到HTML文件中。
2015年全國(guó)職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書(shū)籍 | |
全國(guó)職稱計(jì)算機(jī)考試速成過(guò)關(guān)系列套裝:W .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書(shū)籍 |