明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

XSLT說明

[摘要]XSLT是由XSL(Extensible Stylesheet Language)發(fā)展而來的,XSLT是一種基于XML的語言,用于將一類(class)XML文檔轉(zhuǎn)換成另一種XML文檔。為什么要轉(zhuǎn)換?轉(zhuǎn)換的目的有多種: (1)顯示:比如把DataSet的XML轉(zhuǎn)換成HTML(HTML可以認(rèn)為是XM...
XSLT是由XSL(Extensible Stylesheet Language)發(fā)展而來的,XSLT是一種基于XML的語言,用于將一類(class)XML文檔轉(zhuǎn)換成另一種XML文檔。

為什么要轉(zhuǎn)換?
轉(zhuǎn)換的目的有多種: (1)顯示:比如把DataSet的XML轉(zhuǎn)換成HTML(HTML可以認(rèn)為是XML的特例,因?yàn)門ag集完全確定)或WML
(2)B2B中的EDI,比如<Vendor>全部變成<Supplier>,甚至數(shù)據(jù)也可以以特定的方式改變
(3)編程方面可能存在的特殊要求


XSLT與XML的關(guān)系類似HTML與CSS的關(guān)系
在CSS文件中,定義有一些專門的格式,大意是每逢某個(gè)Tag,就將其括起來的內(nèi)容以某種字體或顏色來顯示。XSLT有類似的功效,比如每逢一個(gè)特定的Tag就將其內(nèi)容顯示在表格單元中。但是XSLT還有另外一個(gè)更強(qiáng)的功能:轉(zhuǎn)換數(shù)據(jù)(為特定的用戶或者設(shè)備),其結(jié)果是:源文檔中的數(shù)據(jù),可能與結(jié)果文檔中的不同,比如一些數(shù)據(jù)不要了,卻出現(xiàn)另一些數(shù)據(jù)(如匯總數(shù)據(jù)或者WML中的特殊設(shè)置,或者字符數(shù)據(jù)發(fā)生變化)。

HTML引用CSS往往是在文件中靜態(tài)聯(lián)接CSS,如下例: ======Test.html
<html>
<head>
<link type="text/css" href="StyleSheet1.css" rel="stylesheet" />
</head>
<body>
<h1>Header 1</h1>
This is a Test
</body>
</html>
==========StyleSheet1.css
H1
{
COLOR: red; FONT-STYLE: italic; FONT-FAMILY: Arial; FONT-VARIANT: normal
}




與此類似,XML文件中也可以指定適用的XSLT文件。但是真正有用的是動態(tài)apply不同的XSLT文件,比如:<%@ LANGUAGE = JScript %>
<%
// Set the source and style sheet locations here
var sourceFile = Server.MapPath("simple.xml");
var styleFile = Server.MapPath("simple.xsl");

// Load the XML
var source = Server.CreateObject("MSXML2.DOMDocument");
source.async = false;
source.load(sourceFile);
// Load the XSLT
var style = Server.CreateObject("MSXML2.DOMDocument");
style.async = false;
style.load(styleFile);
Response.Write(source.transformNode(style));
%>




兩種轉(zhuǎn)換模式:模板驅(qū)動與數(shù)據(jù)驅(qū)動
Template-driven model:類似郵件合并,根據(jù)XSLT的要求尋找源文檔中的數(shù)據(jù),找到后插入到預(yù)定的位置,最后形成一個(gè)符合模板要求的文檔。

Data-driven model:根據(jù)源文檔的結(jié)構(gòu),在XSLT中尋找匹配的模板片斷,最終的格式類似源文檔,而不是XSLT中的整體模板樣式。同一個(gè)XSLT中可以包括兩種模式。


標(biāo)簽:XSLT介紹