Microsoft XML Core Services (MSXML) 4.0 - XSLT Developer's Guide

Sample ASP Script for XSLT Processor Objects

The following ASP script demonstrates most of the key features of the XSLTProcessor and XSLTemplate objects. It takes the genre parameter from a client-side HTML page and returns a table of all books from the book catalog in the given genre, sorted by title.

The ASP script contains the following functions:

ASP Script (catalog.asp)

<%@LANGUAGE="JavaScript"%>
<%Response.expires=-1;
// catalog.asp
// Sorts books from a given catalog by title, for a given Genre.
function loadSource(sourceName){
    var xmlDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument.4.0");
    xmlDoc.async=false;
    xmlDoc.load(Server.mapPath(sourceName));
    return xmlDoc;
    }

function getProcessor(transformName){
    if ("" + Session(transformName) == "undefined"){
        var xslDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument.4.0");
        var xslTemplate=new ActiveXObject("MSXML2.XSLTemplate.4.0");
        xslDoc.async=false;
        xslDoc.load(Server.mapPath(transformName));
        xslTemplate.stylesheet=xslDoc;
        xslProcessor=xslTemplate.createProcessor();
        Session(transformName)=xslProcessor;
        }
    else {
        xslProcessor=Session(transformName);
        }
    return xslProcessor;
    }

function transformData(srcDoc,processor){
    processor.input=srcDoc;
    processor.output=Response;
    processor.transform();
    return true;
    }

function main(){
    var srcDoc=loadSource("books.xml");
    var processor=getProcessor("catalogFilter.xsl");

    var genre=Request("genre");
    if(""+genre=="undefined"){
        genre="all";
        }
    else {
        genre=""+genre;
        }           
    processor.addParameter("selected_genre",genre);
    transformData(srcDoc,processor);
    }    

main();    
 %>

This HTML Help has been published using the chm2web software.