XSLT - 在服務器端
因爲並不是全部的瀏覽器都支持 XSLT,另外一種解決方案是在服務器上完成 XML 至 XHTML 的轉化。 html
跨瀏覽器解決方案
在前面的章節,咱們講解過如何在瀏覽器中使用 XSLT 來完成 XML 到 XHTML 的轉化。咱們建立了一段使用 XML 解析器來進行轉換的 JavaScript。JavaScript 解決方案沒法工做於沒有 XML 解析器的瀏覽器。爲了讓 XML 數據適用於任何類型的瀏覽器,咱們必須在服務器上對 XML 文檔進行轉換,而後將其做爲 XHMTL 發送回瀏覽器。 瀏覽器
這是 XSLT 的另外一個優勢。XSLT 的設計目標之一是使數據在服務器上從一種格式轉換到另外一種格式成爲可能,並向全部類型的瀏覽器返回可讀的數據。 服務器
XML 文件和 XSLT 文件
請看這個在前面的章節已展現過的 XML 文檔: async
<?xml version="1.0" encoding="ISO-8859-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>
.
.
</catalog>
<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 文件。 學習
以及附隨的 XSL 樣式表: url
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th align="left">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:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th align="left">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 文件。 spa
請注意,這個 XML 文件沒有包含對 XSL 文件的引用。 .net
重要事項:上面這句話意味着,XML 文件可以使用多個不一樣的 XSL 樣式表來進行轉換。 設計
在服務器把 XML 轉換爲 XHTML
這是用於在服務器上把 XML 文件轉換爲 XHTML 的源代碼: orm
<%
'Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>
'Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>
提示:假如您不瞭解如何編寫 ASP,您能夠學習咱們的 ASP 教程。
第一段代碼建立了微軟的 XML 解析器(XMLDOM)的一個實例,並把 XML 文件載入了內存。第二段代碼建立了解析器的另外一個實例,並把這個 XSL 文件載入了內存。最後一行代碼使用 XSL 文檔轉換了 XML 文檔,並把結果做爲 XHTML 發送到您的瀏覽器。太好了!
原文地址:http://www.w3cschool.cc/xsl/xsl-server.html
更多內容請查看:w3cschool菜鳥教程