亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
XSLT 基礎(chǔ)教程 XSL 語言 XSLT 簡介 XSLT 瀏覽器 XSLT - 轉(zhuǎn)換 XSLT <xsl:template> 元素 XSLT <xsl:value-of> 元素 XSLT <xsl:for-each> 元素 XSLT <xsl:sort> 元素 XSLT <xsl:if> 元素 XSLT <xsl:choose> 元素 XSLT <xsl:apply-templates> 元素 XSLT - 在客戶端 XSLT - 在服務(wù)器端 XSLT - 編輯 XML XML 編輯器 XSLT 元素參考手冊 XSLT <xsl:apply-imports> 元素 XSLT <xsl:apply-templates> 元素 XSLT <xsl:attribute> 元素 XSLT <xsl:attribute-set> 元素 XSLT <xsl:call-template> 元素 XSLT <xsl:choose> 元素 XSLT <xsl:comment> 元素 XSLT <xsl:copy> 元素 XSLT <xsl:copy-of> 元素 XSLT <xsl:decimal-format> 元素 XSLT <xsl:element> 元素 XSLT <xsl:fallback> 元素 XSLT <xsl:for-each> 元素 XSLT <xsl:if> 元素 XSLT <xsl:import> 元素 XSLT <xsl:include> 元素 XSLT <xsl:key> 元素 XSLT <xsl:message> 元素 XSLT <xsl:namespace-alias> 元素 XSLT <xsl:number> 元素 XSLT <xsl:otherwise> 元素 XSLT <xsl:output> 元素 XSLT <xsl:param> 元素 XSLT <xsl:preserve-space> 和 <xsl:strip-space> 元素 XSLT <xsl:processing-instruction> 元素 XSLT <xsl:sort> 元素 XSLT <xsl:stylesheet> 和 <xsl:transform> 元素 XSLT <xsl:template> 元素 XSLT <xsl:text> 元素 XSLT <xsl:value-of> 元素 XSLT <xsl:value-of> 元素 XSLT <xsl:variable> 元素 XSLT <xsl:when> 元素 XSLT <xsl:with-param> 元素 XSLT 函數(shù) XSLT current() 函數(shù) XSLT document() 函數(shù) XSLT element-available() 函數(shù) XSLT format-number() 函數(shù) XSLT function-available() 函數(shù) XSLT generate-id() 函數(shù) XSLT key() 函數(shù) XSLT system-property() 函數(shù) XSLT unparsed-entity-uri() 函數(shù)
characters

XSLT - 在客戶端



如果您的瀏覽器支持 XSLT,那么在瀏覽器中它可被用來將文檔轉(zhuǎn)換為 XHTML。


JavaScript 解決方案

在前面的章節(jié),我們已向您講解如何使用 XSLT 將某個(gè) XML 文檔轉(zhuǎn)換為 XHTML。我們是通過以下途徑完成這個(gè)工作的:向 XML 文件添加 XSL 樣式表,并通過瀏覽器完成轉(zhuǎn)換。

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

更通用的方法是使用 JavaScript 來完成轉(zhuǎn)換。

通過使用 JavaScript,我們可以:

  • 進(jìn)行瀏覽器確認(rèn)測試

  • 根據(jù)瀏覽器和用戶需求來使用不同的樣式表

這就是 XSLT 的魅力所在!XSLT 的設(shè)計(jì)目的之一就是使數(shù)據(jù)從一種格式轉(zhuǎn)換到另一種格式成為可能,同時(shí)支持不同類型的瀏覽器以及不同的用戶需求。

客戶端的 XSLT 轉(zhuǎn)換一定會(huì)成為未來瀏覽器所執(zhí)行的主要任務(wù)之一,同時(shí)我們也會(huì)看到其在特定的瀏覽器市場的增長(盲文、聽覺瀏覽器、網(wǎng)絡(luò)打印機(jī),手持設(shè)備,等等)。


XML 文件和 XSL 文件

請看這個(gè)在前面的章節(jié)已展示過的 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>

以及附隨的 XSL 樣式表:

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

請注意,這個(gè) XML 文件沒有包含對(duì) XSL 文件的引用。

重要事項(xiàng):上面這句話意味著,XML 文件可使用多個(gè)不同的 XSL 樣式表來進(jìn)行轉(zhuǎn)換。


在瀏覽器中把 XML 轉(zhuǎn)換為 XHTML

這是用于在客戶端把 XML 文件轉(zhuǎn)換為 XHTML 的源代碼:

實(shí)例

<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" />
</body>
</html>
 

提示:假如您不了解如何編寫 JavaScript,請學(xué)習(xí)我們的 JavaScript 教程。

實(shí)例解釋:

loadXMLDoc() 函數(shù)

loadXMLDoc() 函數(shù)是用來加載 XML 和 XSL 文件。

它檢查用戶擁有的和加載文件的瀏覽器類型。

displayResult() 函數(shù)

該函數(shù)用來顯示使用 XSL 文件定義樣式的 XML 文件。

  • 加載 XML 和 XSL 文件

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

  • 如果用戶瀏覽器支持 ActiveX 對(duì)象:

    • 使用 transformNode() 方法把 XSL 樣式表應(yīng)用到 XML 文檔

    • 設(shè)置當(dāng)前文檔(id="example")的 body 包含已經(jīng)應(yīng)用樣式的 XML 文檔

  • 如果用戶的瀏覽器不支持 ActiveX 對(duì)象:

    • 創(chuàng)建一個(gè)新的 XSLTProcessor 對(duì)象并導(dǎo)入 XSL 文件

    • 使用 transformToFragment() 方法把 XSL 樣式表應(yīng)用到 XML 文檔

    • 設(shè)置當(dāng)前文檔(id="example")的 body 包含已經(jīng)應(yīng)用樣式的 XML 文檔


Previous article: Next article: