XSL基礎(chǔ)教程第三章_Xml教程
推薦:XSL-FO 初學(xué)者教程:XSL-FO 輸出和流XSL-FO在<fo:flow>元素內(nèi)部定義輸出。 XSL-FO 頁(yè)面(Page)、流(Flow)以及塊(Block) 內(nèi)容“塊”會(huì)“流”入“頁(yè)面”中,然后輸出到媒介。 XSL-FO輸出通
客戶端XSL
如果瀏覽器支持XML,,就可以用XSL在瀏覽器中將文檔轉(zhuǎn)換成HTML。
一個(gè)JavaScript的解決方法
在前文中,我們解釋了如何用XSL將一個(gè)文檔從XML轉(zhuǎn)換成HTML。竅門就是向XML文件中增加一個(gè)XSL樣式表,然后讓瀏覽器來(lái)進(jìn)行轉(zhuǎn)換。即使這種方法能奏效,在XML文件中包含一個(gè)樣式表引用也并非令人滿意的方法,并且在不支持XSL的瀏覽器上這種方法還不能奏效。
一個(gè)更通用的方法應(yīng)該是用一個(gè)JavaScript來(lái)進(jìn)行從XML到HTML的轉(zhuǎn)換。使用一個(gè)JavaScript,就更有以下可能性:
允許JavaScript進(jìn)行瀏覽器細(xì)節(jié)測(cè)試;
根據(jù)瀏覽器和用戶需求使用不同的樣式表。
這就是XSL的美妙之處。XSL設(shè)計(jì)目的之一就是使數(shù)據(jù)從一個(gè)格式轉(zhuǎn)換成另一個(gè)格式成為可能,從而支持不同的瀏覽器和不同的用戶需求。
客戶端XSL轉(zhuǎn)換將成為未來(lái)瀏覽器工作任務(wù)的一個(gè)主要部分,我們還將看到專業(yè)化瀏覽器市場(chǎng)的成長(zhǎng),比如Braille、 發(fā)聲網(wǎng)絡(luò)、網(wǎng)絡(luò)打印機(jī)、手持PC、移動(dòng)電話等。
XML文件和XSL文件
現(xiàn)在重新來(lái)看看前面章節(jié)中的XML文檔:
| 以下為引用的內(nèi)容: <?xml version="1.0"?> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> . . . |
還有附帶的XSL樣式表:
| 以下為引用的內(nèi)容: <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body> <table border="2" bgcolor="yellow"> <tr> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="CATALOG/CD"> <tr> <td><xsl:value-of select="TITLE"/></td> <td><xsl:value-of select="ARTIST"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
要確保XML文件沒有對(duì)XSL文件的引用,XSL文件也沒有對(duì)XML文件的引用。注意:上面的句子說(shuō)明一個(gè)XML文件可以用許多不同的XSL文件進(jìn)行轉(zhuǎn)換。
在瀏覽器中將XML轉(zhuǎn)換到HTML
以下是在客戶機(jī)上將XML文件轉(zhuǎn)換成HTML所需要的源代碼,很簡(jiǎn)單:
| 以下為引用的內(nèi)容: <html> <body> <script language="javascript"> // Load XML var xml = new ActiveXObject("Microsoft.XMLDOM") xml.async = false xml.load("cd_catalog.xml") // Load the XSL var xsl = new ActiveXObject("Microsoft.XMLDOM") xsl.async = false xsl.load("cd_catalog.xsl") // Transform document.write(xml.transformNode(xsl)) </script> </body> </html> |
如果使用的是Internet Explorer 5.0 或更高版本,請(qǐng)點(diǎn)擊這里查看結(jié)果。
代碼的第一塊創(chuàng)建了Microsoft XML 解析器(XMLDOM)的一個(gè)例示,并將XML文檔加載到內(nèi)存中。代碼的第二塊創(chuàng)建解析器的另一個(gè)例示,并將XSL文檔加載到內(nèi)存中。代碼的最后一行用XSL文檔轉(zhuǎn)換XML文檔,將結(jié)果寫入HTML 文檔中。
服務(wù)器端XSL
由于不是所有的瀏覽器都支持XML和XSL,因此就有了一個(gè)在服務(wù)器上將XML轉(zhuǎn)換成HTML的方法。
一個(gè)跨瀏覽器的解決方法
在前面的章節(jié)中,我們解釋了如何用XSL在瀏覽器中將XML文檔轉(zhuǎn)換成HTML,竅門就是讓JavaScript使用一個(gè)XML解析器來(lái)進(jìn)行轉(zhuǎn)換。但是當(dāng)瀏覽器不支持XML解析器時(shí),這種方法是不奏效的。要使XML數(shù)據(jù)對(duì)所有瀏覽器都可用,我們就必須在服務(wù)器上轉(zhuǎn)換XML文檔,并將它作為純HTML發(fā)送到瀏覽器。
這是XSL的另一個(gè)美妙之處。XSL的設(shè)計(jì)目的之一是使得在服務(wù)器上將數(shù)據(jù)從一種格式轉(zhuǎn)換成另一種格式成為可能,并將可讀數(shù)據(jù)返回到所有未來(lái)的瀏覽器中。
在服務(wù)器上進(jìn)行XSL轉(zhuǎn)換正在成為未來(lái)Internet信息服務(wù)器工作任務(wù)的一個(gè)主要部分,同時(shí)我們將看到專用瀏覽器市場(chǎng)的發(fā)展,如:Braille、有聲網(wǎng)絡(luò)、網(wǎng)絡(luò)打印機(jī)、手持PC、移動(dòng)電話等。
XML文件和XSL文件
現(xiàn)在來(lái)重新看看前面章節(jié)中的XML文檔:
| 以下為引用的內(nèi)容: <?xml version="1.0"?> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> . . . |
如果使用的是Internet Explorer 5.0或更高版本,可以點(diǎn)擊這里查看XML文件。
再看看伴隨的XSL樣式表:
| 以下為引用的內(nèi)容: <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body> <table border="2" bgcolor="yellow"> <tr> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="CATALOG/CD"> <tr> <td><xsl:value-of select="TITLE"/></td> <td><xsl:value-of select="ARTIST"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> |
如果使用的是Internet Explorer 5.0或更高版本,可以點(diǎn)擊這里查看XSL文件。
以上XSL文檔的語(yǔ)法在前面章節(jié)中已經(jīng)解釋過(guò)了,因此這里不再做解釋。但是要確保XML文件沒有對(duì)XSL文件的引用,XSL文件也沒有對(duì)XML文件的引用。同時(shí)請(qǐng)注意:上面的句子表明一個(gè)服務(wù)器上的XML文件可以用許多不同的XSL文件進(jìn)行轉(zhuǎn)換。
在服務(wù)器端將XML轉(zhuǎn)換成HTML
以下是在服務(wù)器上轉(zhuǎn)換XML文件所需要的簡(jiǎn)單源代碼:
| 以下為引用的內(nèi)容: <% 'Load the XML set xml = Server.CreateObject("Microsoft.XMLDOM") xml.async = false xml.load(Server.MapPath("cd_catalog.xml")) 'Load the XSL set xsl = Server.CreateObject("Microsoft.XMLDOM") xsl.async = false xsl.load(Server.MapPath("cd_catalog.xsl")) 'Transform the file Response.Write(xml.transformNode(xsl)) %> |
代碼的第一塊創(chuàng)建Microsoft XML解析器(XMLDOM)的一個(gè)例示,并將XML文件裝載到內(nèi)存中。代碼的第二塊創(chuàng)建解析器的另一個(gè)例示,并將XSL文檔裝載到內(nèi)存。代碼的最后一行用XSL文檔轉(zhuǎn)換XML文檔,并將結(jié)果返回瀏覽器。
分享:XML入門教程:現(xiàn)實(shí)生活中的XML一個(gè)現(xiàn)實(shí)生活中的例子,向您展示XML如何攜帶數(shù)據(jù)。 實(shí)例:XML 新聞 XMLNews是用于交換新聞和其他信息的規(guī)范。 對(duì)新聞的供求雙方來(lái)說(shuō),通過(guò)使用這種標(biāo)準(zhǔn),可以使各種類型的新聞信息通過(guò)不
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語(yǔ)法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫(kù)
- WML教程之文本框控件Input
- 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測(cè)試模式 - XSL教程 - 5
- 相關(guān)鏈接:
- 教程說(shuō)明:
Xml教程-XSL基礎(chǔ)教程第三章
。