您的位置:首页 > 其它

我封装的一个XSLT类。

2006-05-08 10:55 274 查看
作品:Sank Orange's Xslt Class
版本:1.0.0
更新日期:2006-05-15
下载地址:http://cds.gameres.com/samples/SankOrange'sXslt_js.rar

//--------- XsltClass.js 开始 -----------

function XsltClass(xmlName, xslName) {
var processor;
var isReady=false;

this.output=output;
this.setParam=setParam;
this.setXsl=setXsl;
this.setXml=setXml;
this.loadXmlStr=loadXmlStr;

var xmlDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument.3.0");
xmlDoc.async=false;
var xslTemplate=new ActiveXObject("MSXML2.XSLTemplate.3.0");

function loadXmlStr(str) {
xmlDoc.loadXML(str);
}

function getProcessor(transformName){
var xslDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument.3.0");
xslDoc.async=false;
xslDoc.load(transformName);
xslTemplate.stylesheet=xslDoc;
xslProcessor=xslTemplate.createProcessor();
return(xslProcessor);
}

function transformData(xmlDoc, processor, response){
if(response) processor.output=response;
processor.input=xmlDoc;
processor.transform();
return(processor.output);
}

function output(response) {
result=null;
if(isReady) {
result=transformData(xmlDoc,processor,response);
}
return(result);
}

function setParam(param, value) {
processor.addParameter(param, value);
}

function setXsl(aXslName) {
processor=getProcessor(aXslName);
isReady=true;
}

function setXml(aXmlName) {
xmlDoc.load(aXmlName);
}

function init(aXmlName, aXslName){
if(aXmlName!=undefined && aXslName!=undefined) {
xmlDoc.load(aXmlName);
processor=getProcessor(aXslName);
isReady=true;
}
}

init(xmlName, xslName);
}

//--------- XsltClass.js 结束 -----------

应用的例子:
<script language="javascript">
xslt=new XsltClass();
xslt.setXsl("test.xsl");
xslt.loadXmlStr("test.xml");
xslt.setParam("Param", paramValue);
alter(xslt.output());
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: