xslt(javascript)~IE6、FireFox2~


xslt用関数(ブラウザ判別関数利用)

JavaScriptでXSLT - XMLHttpRequestのレスポンスをXSLTで処理

function xsltExecution(responseXML, xslUrl, parameterArray){

var xml = responseXML;
var xslt;
var xsltDoc;

// ブラウザ判別
if(checkBrowser() == "MZ") {
// Mozilla
xsltDoc = document.implementation.createDocument("", "", null);
}else{
// Internet Explorer
xsltDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
xsltDoc.async = false;
}

//共通部
xsltDoc.async = false;
xsltDoc.load(xslUrl)

// ブラウザ判別
if(checkBrowser() == "MZ") {
// Mozilla
xslt = new XSLTProcessor();
xslt.importStylesheet(xsltDoc);
}else {
// Internet Explorer
var xslTemp = new ActiveXObject("Msxml2.XSLTemplate");
xslTemp.stylesheet = xsltDoc;
xslt = xslTemp.createProcessor();
xslt.input = xml;
}

//ブラウザ判別
if(checkBrowser() == "MZ"){
//Mozilla
if(arguments.length == 3){

//パラメーター読込部

for(var i = 0; i < parameterArray.length; i++){

//alert(i + "回目");

xslt.setParameter(null, parameterArray[i][0], parameterArray[i][1]);

}
}

var fragment = document.implementation.createDocument("", "", null);
var doc = xslt.transformToFragment(xml, fragment);

return doc;

}else{
// Internet Explorer
if(arguments.length == 3){
for(var i = 0; i < parameterArray.length; i++){

xslt.addParameter(parameterArray[i][0], parameterArray[i][1]);

}
}

xslt.transform();

return xslt.output;

}

}
パラメーターの追加

mozilla

xslt.setParameter(null, parametername, 値);

IE

xslt.addParameter(parametername, 値);
xslt変換部

mozilla

var doc =  xslt.transformToFragment(xml, fragment);

IE

xslt.transform();
戻り値

mozilla

return doc;

IE

return xslt.output;
最終更新:2007年05月02日 00:35