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, 値);
mozilla
var doc = xslt.transformToFragment(xml, fragment);
IE
xslt.transform();
mozilla
return doc;
IE
return xslt.output;