主頁(yè) > 知識(shí)庫(kù) > XSL簡(jiǎn)明教程

XSL簡(jiǎn)明教程

熱門(mén)標(biāo)簽:r語(yǔ)言數(shù)據(jù)可視化地圖標(biāo)注 微信地圖標(biāo)注合并了 南寧網(wǎng)絡(luò)外呼系統(tǒng)運(yùn)營(yíng)商 東營(yíng)電銷 隨州外呼調(diào)研系統(tǒng) 本地電話機(jī)器人 400電話辦理包年 如何修改多個(gè)百度地圖標(biāo)注 高德地圖地圖標(biāo)注服務(wù)中心

一. XSL入門(mén)

1.XSL---XML的樣式表

HTML網(wǎng)頁(yè)使用預(yù)先確定的標(biāo)識(shí)(tags),這就是說(shuō)所有的標(biāo)記都有明確的含義,例如p>是另起一行h1>是標(biāo)題字體。所有的瀏覽器都知道如何解析和顯示HTML網(wǎng)頁(yè)。
然而,XML沒(méi)有固定的標(biāo)識(shí),我們可以建立我們自己需要的標(biāo)識(shí),所以瀏覽器不能自動(dòng)解析它們,例如table>可以理解為表格,也可以理解為桌子。由于XML的可擴(kuò)展性,使我們沒(méi)有一個(gè)標(biāo)準(zhǔn)的辦法來(lái)顯示XML文檔。
為了控制XML文檔的顯示,我們有必要建立一種機(jī)制,CSS就是其中的一種,但是XSL(eXtensible Stylesheet Language)是顯示XML文檔的首選樣式語(yǔ)言,它比CSS更適合于XML。

2.XSL --- 不僅僅是一種樣式表

XSL由兩部分組成:

一是轉(zhuǎn)化XML文檔;二是格式化XML文檔。

如果你不理解這個(gè)意思,可以這樣想:XSL是一種可以將XML轉(zhuǎn)化成HTML的語(yǔ)言,一種可以過(guò)濾和選擇XML數(shù)據(jù)的語(yǔ)言,一種能夠格式化XML數(shù)據(jù)的語(yǔ)言。(比如用紅色顯示負(fù)數(shù)。)

3.XSL --- 它能做什么?

XSL可以被用來(lái)定義XML文檔如何顯示,可以將XML文檔轉(zhuǎn)換成能被瀏覽器識(shí)別的HTML文件,通常的,XSL是通過(guò)將每一個(gè)XML元素"翻譯"為HTML元素,來(lái)實(shí)現(xiàn)這種轉(zhuǎn)換的。

XSL能夠向輸出文件里添加新的元素,或則移動(dòng)元素。XSL也能夠重新排列或者索引數(shù)據(jù),它可以檢測(cè)并決定哪些元素被顯示,顯示多少。

4.XSL在IE5中的顯示

注意:IE5.0中,并不能完全兼容W3C組織發(fā)布的最新XSL標(biāo)準(zhǔn)。因?yàn)镮E5.0是在XSL標(biāo)準(zhǔn)最終確定以前發(fā)布的。微軟已經(jīng)承諾在IE5.5中修正。 二.XSL的轉(zhuǎn)換
  1.將XML轉(zhuǎn)換成HTML

XSL是如何將XML文檔轉(zhuǎn)換成HTML文件的呢?我們來(lái)看一個(gè)例子,下面是XML文檔的一部分: ?xml version="1.0" encoding="ISO8859-1" ?>
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文件作為HTML的模板將XML數(shù)據(jù)轉(zhuǎn)換為HTML文件: ?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>
  在上面的代碼中, 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è)樣式表文件。xsl:template
match="/">語(yǔ)句表示XML的源文檔在當(dāng)前目錄下。

如果為XML文檔加上XSL樣式表,看下面代碼第2行,你的瀏覽器就可以精確的將XML 文檔轉(zhuǎn)換為HTML文件。 ?xml version="1.0" encoding="ISO8859-1" ?>
?xml-stylesheet type="text/xsl" href="cd_catalog.xsl"?>
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--在客戶端的實(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)例子的部分代碼:

?xml version="1.0" encoding="ISO8859-1" ?>
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文件(cd_catalog.xsl): ?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>
  注意,現(xiàn)在XML文件還沒(méi)有加入XSL樣式表,還沒(méi)有被轉(zhuǎn)換成HTML文件。

下面是用JavaSript來(lái)實(shí)現(xiàn)最后轉(zhuǎn)換的HTML代碼: 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>
  上面代碼中使用了Javascript,如果你不知道如何寫(xiě)JavaScript,您最好專門(mén)學(xué)習(xí)一下。

第一段代碼建立一個(gè)Microsoft Parser(XMLDOM)解析的對(duì)象,并將XML文檔讀入內(nèi)存;第二段代碼建立另外一個(gè)對(duì)象并導(dǎo)入XSL文檔;最后一行代碼將XML文檔用XSL文檔轉(zhuǎn)換,并將結(jié)果輸出到HTML文件中。

標(biāo)簽:德州 西雙版納 拉薩 黃石 寧夏 宿遷 益陽(yáng) 果洛

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《XSL簡(jiǎn)明教程》,本文關(guān)鍵詞  XSL,簡(jiǎn)明教程,XSL,簡(jiǎn)明教程,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《XSL簡(jiǎn)明教程》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于XSL簡(jiǎn)明教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章