麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > XML > 正文

XSL簡明教程

2024-09-05 20:53:34
字體:
來源:轉載
供稿:網友

一. XSL入門

1.XSL---XML的樣式表

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

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

XSL由兩部分組成:

一是轉化XML文檔;二是格式化XML文檔。

如果你不理解這個意思,可以這樣想:XSL是一種可以將XML轉化成HTML的語言,一種可以過濾和選擇XML數據的語言,一種能夠格式化XML數據的語言。(比如用紅色顯示負數。)

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

XSL可以被用來定義XML文檔如何顯示,可以將XML文檔轉換成能被瀏覽器識別的HTML文件,通常的,XSL是通過將每一個XML元素"翻譯"為HTML元素,來實現這種轉換的。

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

4.XSL在IE5中的顯示

注意:IE5.0中,并不能完全兼容W3C組織發布的最新XSL標準。因為IE5.0是在XSL標準最終確定以前發布的。微軟已經承諾在IE5.5中修正。 二.XSL的轉換
 1.將XML轉換成HTML

XSL是如何將XML文檔轉換成HTML文件的呢?我們來看一個例子,下面是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數據轉換為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屬性用來定義源文件中的元素名。指定屬性的這種語法又稱為XML
Pattern(模式),類似文件子目錄的表示形式。xsl:value-of元素用來在當前層次中插入子元素的內容模板。

因為XSL樣式表自身也是一個XML文檔,因此,XSL文件的開頭以一個XML聲明開始。 xsl:stylesheet元素用來聲明這是一個樣式表文件。<xsl:template
match="/">語句表示XML的源文檔在當前目錄下。

如果為XML文檔加上XSL樣式表,看下面代碼第2行,你的瀏覽器就可以精確的將XML 文檔轉換為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--在客戶端的實現
 1.JavaScript解決方案

在上面的章節中我們已經解釋了XSL是如何將XML轉換成HTML文件。方法就是在XML文檔的頭部加入一個XSL樣式表信息,然后讓瀏覽器執行轉換過程。

這種方法在大部分情況下都做得很好,但是在不支持XML的瀏覽器中就無法正確顯示了。

一個更好的更全面的解決方案是使用Javascript來實現XML到HTML的轉換。但是使用JavaScript必須得到以下功能支持:

a.允許Javascript代替瀏覽器進行細節檢測;

b.根據不同的需要和不同的瀏覽器使用不同的樣式表。

對于XSL來說這是完全可行的。設計XSL的目標之一就是允許將一種格式轉換成另一種格式,支持不同的瀏覽器,支持不同的用戶需求。未來的瀏覽器的重要任務就是在客戶端執行XSL的轉換工作。

2.一個具體的實例

下面是我們上面提到的一個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>
 注意,現在XML文件還沒有加入XSL樣式表,還沒有被轉換成HTML文件。

下面是用JavaSript來實現最后轉換的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,如果你不知道如何寫JavaScript,您最好專門學習一下。

第一段代碼建立一個Microsoft Parser(XMLDOM)解析的對象,并將XML文檔讀入內存;第二段代碼建立另外一個對象并導入XSL文檔;最后一行代碼將XML文檔用XSL文檔轉換,并將結果輸出到HTML文件中。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色免费大片 | 久久精品一区二区三区四区五区 | 91成人在线免费 | 免费a级毛片永久免费 | 国产精品99久久久久久久 | 久色成人网 | 99影视在线视频免费观看 | 毛片免费在线 | 国产成人精品区 | 久久久日韩精品一区二区 | 日本精品久久久久久草草 | 午夜神马福利视频 | 逼片| 日本一区二区高清不卡 | 黄色网址进入 | 免费看性xxx高清视频自由 | 福利免费在线 | 欧美一区二区三区中文字幕 | 深夜视频福利 | 国产精品一区免费在线观看 | 一本色道久久综合亚洲精品图片 | 日日操夜夜透 | 92看片淫黄大片欧美看国产片 | 石原莉奈日韩一区二区三区 | 国产精品成人一区二区三区吃奶 | 国产成人精品免高潮在线观看 | 久久精品久久久久 | 最新91在线视频 | 久久精品性视频 | 日本在线高清 | 国产免费观看电影网站 | 成人国产精品一区 | 欧美黄色看 | 一级片999| 中文字幕一区久久 | 午夜a狂野欧美一区二区 | 在线看成人av | 中文字幕涩涩久久乱小说 | 黄色一级片在线免费观看 | 羞羞网站| 国产成人免费精品 |