XSLT – 伺服器端概述

roc_guo發表於2022-08-02
導讀 由於並非所有的瀏覽器都支援 XSLT,另一種解決方案是在伺服器上完成 XML 至 XHTML 的轉化。

XSLT – 伺服器端概述XSLT – 伺服器端概述

跨瀏覽器解決方案

在前面的章節,我們講解過如何在瀏覽器中使用 XSLT 來完成 XML 到 XHTML 的轉化。我們建立了一段使用 XML 解析器來進行轉換的 JavaScript。JavaScript 解決方案無法工作於沒有 XML 解析器的瀏覽器。
為了讓 XML 資料適用於任何型別的瀏覽器,我們必須在伺服器上對 XML 文件進行轉換,然後將其作為 XHMTL 傳送回瀏覽器。

這是 XSLT 的另一個優點。XSLT 的設計目標之一是使資料在伺服器上從一種格式轉換到另一種格式成為可能,並向所有型別的瀏覽器返回可讀的資料。

XML 檔案和 XSLT 檔案

請看這個在前面的章節已展示過的 XML 文件:

<?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>

以及附隨的 XSL 樣式表:

<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0"xmlns:xsl="
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th style="text-align:left">Title</th>
      <th style="text-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></xsl:template></xsl:stylesheet>

請注意,這個 XML 檔案沒有包含對 XSL 檔案的引用。

重要事項:上面這句話意味著,XML 檔案可使用多個不同的 XSL 樣式表來進行轉換。

在伺服器把 XML 轉換為 XHTML

這是用於在伺服器上把 XML 檔案轉換為 XHTML 的原始碼:

使用 PHP 程式碼轉換
<?php// 載入 XML 檔案$xml = new DOMDocument;$xml->load('cdcatalog.xml');// 載入 XSL 檔案$xsl = new DOMDocument;$xsl->load('cdcatalog.xsl');// 設定轉換$proc = new XSLTProcessor;// 新增 xsl 規則$proc->importStyleSheet($xsl);echo $proc->transformToXML($xml);?>
使用 ASP 程式碼轉換
<%'載入 XML 檔案
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'載入 XSL 檔案set xsl = Server.CreateObject("Microsoft.XMLDOM")xsl.async = falsexsl.load(Server.MapPath("cdcatalog.xsl"))'轉換檔案
Response.Write(xml.transformNode(xsl))%>

第一段程式碼建立了微軟的 XML 解析器(XMLDOM)的一個例項,並把 XML 檔案載入了記憶體。第二段程式碼建立瞭解析器的另一個例項,並把這個 XSL 檔案載入了記憶體。最後一行程式碼使用 XSL 文件轉換了 XML 文件,並把結果作為 XHTML 傳送到您的瀏覽器。太好了!

它是如何工作的。

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2908685/,如需轉載,請註明出處,否則將追究法律責任。

相關文章