// Load the XML
var source = Server.CreateObject("Microsoft.XMLDOM");
source.async = false;
source.load(sourceFile);
// Load the XSL
var style = Server.CreateObject("Microsoft.XMLDOM");
style.async = false;
style.load(styleFile);
Response.Write(source.transformNode(style));
%>
一般以MSXML為開發環境的都要建立安裝新的解析器,如MSXML 3或者MSXML 4 Technology PrevIEw,
在以replace方式裝了MSXML 3後,我們可以使用以下的代碼
<%@ LANGUAGE = JScript %>
<%
// Set the source and style sheet locations here
var sourceFile = Server.MapPath("test.XML");
var styleFile = Server.MapPath("test.xsl");
// Load the XML
var source = Server.CreateObject("MsXML2.DOMDocument");
source.async = false;
source.load(sourceFile);
// Load the XSL
var style = Server.CreateObject("MsXML2.DOMDocument");
style.async = false;
style.load(styleFile);
Response.Write(source.transformNode(style));
%>
這樣我們獲得了MSXML 3的開發環境,但如果我們不想破壞原來的環境,又要測試我們基於MSXML 3的例子呢,雖然用replace方式安裝提供了向後兼容方式來支持XSL元素,函數和XSL命名空間。
其實使用版本無關progIDs(version-dependent progIDs)來創建對象實例可以更好的完成工作,我們不需要用replace方式安裝,用side-by-side方式即可,我們看下面的代碼:
<%@ LANGUAGE = JScript %>
<%
// Set the source and style sheet locations here
var sourceFile = Server.MapPath("test.XML");
var styleFile = Server.MapPath("test.xsl");
// Load the XML
var source = Server.CreateObject("MsXML2.DOMDocument.3.0");
source.async = false;
source.load(sourceFile);
// Load the XSL
var style = Server.CreateObject("MsXML2.DOMDocument.3.0");
style.async = false;
style.load(styleFile);
Response.Write(source.transformNode(style));
%>
只需要在Msxml2.DOMDocument後面加上版本號3.0,即可使用MSXML 3的東東了,MSXML 4呢,依次類推。
在客戶端的環境也是一樣的,用JS創建DOM對象是一樣的。
function test(){
var xmlDoc = new ActiveXObject("MsXML2.DOMDocument.3.0");
var currNode;
XMLDoc.async = false;
xmlDoc.load("test.XML");
currNode = XMLDoc.documentElement.firstChild;
alert(currNode.XML);
}
最後,XSLT樣式單side-by-side方式下在Internet EXPlorer 5.0及以後版本不支持。如果你要使用IE 5來打開XSLT樣式單,需要用replace方式安裝。