原著:Jan Egil Refsnes 翻譯:阿捷
二.XSL的轉(zhuǎn)換
1.將XML轉(zhuǎn)換成HTML
XSL是如何將XML文檔轉(zhuǎn)換成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數(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屬性用來定義源文件中的元素名。指定屬性的這種語法又稱為XML
Pattern(模式),類似文件子目錄的表示形式。xsl:value-of元素用來在當前層次中插入子元素的內(nèi)容模板。
因為XSL樣式表自身也是一個XML文檔,因此,XSL文件的開頭以一個XML聲明開始。 xsl:stylesheet元素用來聲明這是一個樣式表文件。xsl:template
match="/">語句表示XML的源文檔在當前目錄下。
如果為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>