XSLT - 轉換
案例研究:如何使用 XSLT 將 XML 轉換為 XHTML?
本例的詳細內容將在下一章中解釋。
正確的樣式表宣告
宣告文件為 XSL 樣式表的根元素是 <xsl:stylesheet> 或 <xsl:transform>。
注意: <xsl:stylesheet> 和 <xsl:transform> 完全等價,兩者都可以使用!
根據 W3C XSLT 推薦標準,宣告 XSL 樣式表的正確方式是
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
或
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
要訪問 XSLT 元素、屬性和功能,我們必須在文件頂部宣告 XSLT 名稱空間。
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 指向官方的 W3C XSLT 名稱空間。如果您使用此名稱空間,您還必須包含屬性 version="1.0"。
從原始 XML 文件開始
我們希望將以下 XML 文件 ("cdcatalog.xml") 轉換為 XHTML
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
在瀏覽器中檢視 XML 檔案:開啟 XML 檔案(點選下面的連結)—— XML 文件將以顏色編碼的根元素和子元素顯示。通常,元素左側會有一個箭頭或加/減號,可以點選展開或摺疊元素結構。提示:要檢視原始 XML 源,請在 XML 檔案中右鍵單擊並選擇“檢視頁面源”!
建立 XSL 樣式表
然後您建立一個帶有轉換模板的 XSL 樣式表 ("cdcatalog.xsl")
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>我的 CD 收藏</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>標題</th>
<th>藝術家</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 樣式錶鏈接到 XML 文件
將 XSL 樣式表引用新增到您的 XML 文件 ("cdcatalog.xml")
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.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>
.
.
</catalog>
如果您有支援 XSLT 的瀏覽器,它會很好地將您的 XML 轉換為 XHTML。
上述示例的詳細內容將在後續章節中解釋。