選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP 如何 W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS 網路安全 資料科學
     ❯   

XML 教程

XML首頁 XML簡介 XML如何使用 XML樹 XML語法 XML元素 XML屬性 XML名稱空間 XML顯示 XML HttpRequest XML解析器 XML DOM XML XPath XML XSLT XML XQuery XML XLink XML驗證器 XML DTD XML Schema XML伺服器 XML示例 XML測驗 XML證書

XML AJAX

AJAX Introduction AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications AJAX Examples

XML DOM

DOM Introduction DOM Nodes DOM Accessing DOM Node Info DOM Node List DOM Traversing DOM Navigating DOM Get Values DOM Change Nodes DOM Remove Nodes DOM Replace Nodes DOM Create Nodes DOM Add Nodes DOM Clone Nodes DOM Examples

XPath 教程

XPath Introduction XPath Nodes XPath Syntax XPath Axes XPath Operators XPath Examples

XSLT 教程

XSLT Introduction XSL Languages XSLT Transform XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT on the Client XSLT on the Server XSLT Edit XML XSLT Examples

XQuery 教程

XQuery Introduction XQuery Example XQuery FLWOR XQuery HTML XQuery Terms XQuery Syntax XQuery Add XQuery Select XQuery Functions

XML DTD

DTD Introduction DTD Building Blocks DTD Elements DTD Attributes DTD Elements vs Attr DTD Entities DTD Examples

XSD Schema

XSD簡介 XSD如何使用 XSD <schema> XSD元素 XSD屬性 XSD限制 XSD複雜元素 XSD空元素 XSD僅包含元素 XSD僅包含文字 XSD混合元素 XSD指示器 XSD <any> XSD <anyAttribute> XSD替換 XSD示例

XSD Data Types

XSD String XSD Date/Time XSD Numeric XSD Misc XSD Reference

Web Services

XML Services XML WSDL XML SOAP XML RDF XML RSS

參考手冊

DOM節點型別 DOM節點 DOM NodeList DOM NamedNodeMap DOM文件 DOM元素 DOM屬性 DOM文字 DOM CDATA DOM註釋 DOM XMLHttpRequest DOM解析器 XSLT元素 XSLT/XPath函式

XSLT - 在客戶端


XSLT可以在您的瀏覽器中用於將文件轉換為XHTML。


一個JavaScript解決方案

在前面的章節中,我們已經解釋了XSLT如何用於將文件從XML轉換為XHTML。我們透過將XSL樣式表新增到XML檔案並讓瀏覽器進行轉換來完成此操作。

儘管這種方法效果很好,但將樣式表引用包含在XML檔案中並不總是可取的(例如,它在不支援XSLT的瀏覽器中將不起作用)。

更通用的解決方案是使用JavaScript進行轉換。

透過使用JavaScript,我們可以

  • 進行瀏覽器特定測試
  • 根據瀏覽器和使用者需求使用不同的樣式表

這就是XSLT的魅力所在!XSLT的設計目標之一是使其能夠將資料從一種格式轉換為另一種格式,支援不同的瀏覽器和不同的使用者需求。


XML檔案和XSL檔案

檢視您在前面章節中看到的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>

檢視 XML 檔案.

以及隨附的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="/">
  <h2>我的 CD 收藏</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th style="text-align:left">標題</th>
      <th style="text-align:left">藝術家</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>

檢視 XSL 檔案.

請注意,XML檔案沒有引用XSL檔案。

重要提示:上述句子表明XML檔案可以使用許多不同的XSL樣式表進行轉換。



在瀏覽器中將XML轉換為XHTML

以下是在客戶端將XML檔案轉換為XHTML所需的原始碼

示例

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename)
{
if (window.ActiveXObject)
  {
  xhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }
else
  {
  xhttp = new XMLHttpRequest();
  }
xhttp.open("GET", filename, false);
try {xhttp.responseType = "msxml-document"} catch(err) {} // 幫助IE11
xhttp.send("");
return xhttp.responseXML;
}

function displayResult()
{
xml = loadXMLDoc("cdcatalog.xml");
xsl = loadXMLDoc("cdcatalog.xsl");
// 針對IE的程式碼
if (window.ActiveXObject || xhttp.responseType == "msxml-document")
  {
  ex = xml.transformNode(xsl);
  document.getElementById("example").innerHTML = ex;
  }
// 針對Chrome、Firefox、Opera等的程式碼
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" />
</body>
</html>
自己動手試一試 »

提示:如果您不知道如何編寫JavaScript,請學習我們的JavaScript教程

示例解釋

loadXMLDoc()函式執行以下操作

  • 建立一個 XMLHttpRequest 物件
  • 使用XMLHttpRequest物件的open()和send()方法向伺服器傳送請求
  • 以XML資料形式獲取響應資料

displayResult()函式用於顯示經過XSL檔案樣式化的XML檔案

  • 載入XML和XSL檔案
  • 測試使用者使用的是哪種瀏覽器
  • 如果是Internet Explorer
    • 使用transformNode()方法將XSL樣式表應用於XML文件
    • 設定當前文件的主體(id="example")以包含樣式化的XML文件
  • 如果是其他瀏覽器
    • 建立一個新的XSLTProcessor物件並匯入XSL檔案
    • 使用transformToFragment()方法將XSL樣式表應用於XML文件
    • 設定當前文件的主體(id="example")以包含樣式化的XML文件

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援