XSLT 教程login
XSLT 教程
作者:php.cn  更新時間:2022-04-20 15:02:22

XSLT 用戶端



如果您的瀏覽器支援 XSLT,那麼在瀏覽器中它可被用來將文件轉換為 XHTML。


JavaScript 解決方案

在前面的章節,我們已向您講解如何使用 XSLT 將某個 XML 文件轉換為 XHTML。我們是透過以下途徑完成這個工作的:在 XML 檔案中新增 XSL 樣式表,並透過瀏覽器完成轉換。

即使這種方法的效果很好,在 XML 文件中包含樣式表引用也不總是令人滿意的(例如,在無法識別 XSLT 的瀏覽器這種方法就無法奏效)。

更通用的方法是使用 JavaScript 來完成轉換。

透過使用JavaScript,我們可以:

  • 進行瀏覽器確認測試

  • 根據瀏覽器和使用者需求來使用不同的樣式表

這就是XSLT 的魅力所在! XSLT 的設計目的之一是讓資料從一種格式轉換到另一種格式成為可能,同時支援不同類型的瀏覽器以及不同的使用者需求。

客戶端的XSLT 轉換一定會成為未來瀏覽器所執行的主要任務之一,同時我們也會看到其在特定的瀏覽器市場的成長(點字、聽覺瀏覽器、網路印表機,手持設備,等等)。


XML 檔案與XSL​​ 檔案

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

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

檢視 XML 檔案。 #<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template符合= “/”>
   
   <內文>
       

我的 CD 收藏


       <表格邊框=“1”>
             
#                    <第對齊=“左”>標題
                   <第對齊=“左”>藝術家
             
             
             
                   <td><xsl:value-of select="title" //></td>
                   <td><xsl:value-of select="artist" //></td>
             
             </xsl:for-each>
   </表>
   </body>
   </html>
</xsl:template>

</xsl:stylesheet>


檢視XSL檔。請注意,該XML 檔案不包含XSL 檔案的參考。來進行轉換。

實例
<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.ActiveXObject)
  {
  xhttp=new ActiveXObject("Msxml2.XMLHTTP.3.0");
  }
else 
  {
  xhttp=new XMLHttpRequest();
  }
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}

function displayResult()
{
xml=loadXMLDoc("cdcatalog.xml");
xsl=loadXMLDoc("cdcatalog.xsl");
// code for IE
if (window.ActiveXObject)
  {
  ex=xml.transformNode(xsl);
  document.getElementById("example").innerHTML=ex;
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  xsltProcessor=new XSLTProcessor();
  xsltProcessor.importStylesheet(xsl);
  resultDocument = xsltProcessor.transformToFragment(xml,document);
  document.getElementById("example").appendChild(resultDocument);
  }
}
</script>
</head>
<body onload="displayResult()">
<div id="example"></div>
</body>
</html>

運行實例 »

#點擊「運行實例」按鈕查看線上實例

#

提示:假如您不了解如何寫 JavaScript,請學習我們的 JavaScript 教學。

實例解釋:

loadXMLDoc() 函數

loadXMLDoc() 函數是用來載入 XML 和 XSL 檔案。

它檢查使用者擁有的和載入檔案的瀏覽器類型。

displayResult() 函數

此函數用來顯示使用 XSL 檔案定義樣式的 XML 檔案。

  • 載入XML 和XSL 檔案

  • 測試使用者擁有的瀏覽器類型

  • 如果用戶瀏覽器支援ActiveX 物件:

    • 使用transformNode() 方法把XSL 樣式表套用到XML 文件

    • 設定目前文件( id="example")的body 包含已經套用樣式的XML 文件

  • #如果使用者的瀏覽器不支援ActiveX 物件:

    • 建立一個新的XSLTProcessor 物件並匯入XSL 檔案

    • #使用transformToFragment() 方法把XSL 樣式表套用到XML 文件

    • #設定目前文件(id="example")的body 包含已經套用樣式的XML 文件


PHP中文網