国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > XML > 正文

XSL簡明教程(3)在客戶端的實現

2024-09-05 20:53:19
字體:
來源:轉載
供稿:網友
原著:Jan Egil Refsnes 翻譯:阿捷

三. 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文件中。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五台县| 蒙城县| 黄龙县| 景宁| 无锡市| 大名县| 海兴县| 克什克腾旗| 弋阳县| 治县。| 钦州市| 宁乡县| 峨山| 贞丰县| 中江县| 富裕县| 安西县| 北海市| 东辽县| 罗定市| 文成县| 三台县| 正安县| 岳普湖县| 五寨县| 玉门市| 乐亭县| 昌邑市| 利辛县| 肥乡县| 论坛| 巴楚县| 棋牌| 高要市| 杭州市| 衡阳市| 万安县| 观塘区| 库尔勒市| 绥德县| 巴塘县|