XSLT說明
發表時間:2024-06-17 來源:明輝站整理相關軟件相關文章人氣:
[摘要]XSLT是由XSL(Extensible Stylesheet Language)發展而來的,XSLT是一種基于XML的語言,用于將一類(class)XML文檔轉換成另一種XML文檔。為什么要轉換?轉換的目的有多種: (1)顯示:比如把DataSet的XML轉換成HTML(HTML可以認為是XM...
XSLT是由XSL(Extensible Stylesheet Language)發展而來的,XSLT是一種基于XML的語言,用于將一類(class)XML文檔轉換成另一種XML文檔。
為什么要轉換?
轉換的目的有多種: (1)顯示:比如把DataSet的XML轉換成HTML(HTML可以認為是XML的特例,因為Tag集完全確定)或WML
(2)B2B中的EDI,比如<Vendor>全部變成<Supplier>,甚至數據也可以以特定的方式改變
(3)編程方面可能存在的特殊要求
XSLT與XML的關系類似HTML與CSS的關系
在CSS文件中,定義有一些專門的格式,大意是每逢某個Tag,就將其括起來的內容以某種字體或顏色來顯示。XSLT有類似的功效,比如每逢一個特定的Tag就將其內容顯示在表格單元中。但是XSLT還有另外一個更強的功能:轉換數據(為特定的用戶或者設備),其結果是:源文檔中的數據,可能與結果文檔中的不同,比如一些數據不要了,卻出現另一些數據(如匯總數據或者WML中的特殊設置,或者字符數據發生變化)。
HTML引用CSS往往是在文件中靜態聯接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文件。但是真正有用的是動態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));
%>
兩種轉換模式:模板驅動與數據驅動
Template-driven model:類似郵件合并,根據XSLT的要求尋找源文檔中的數據,找到后插入到預定的位置,最后形成一個符合模板要求的文檔。
Data-driven model:根據源文檔的結構,在XSLT中尋找匹配的模板片斷,最終的格式類似源文檔,而不是XSLT中的整體模板樣式。同一個XSLT中可以包括兩種模式。