В ИЕ почему-то не хочется добавляться параметр в XML/XSLT преобразование
domDocument =
{
load_file : function(xmlfile)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
alert("Hello!");
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",xmlfile,false);
xhttp.send("");
return xhttp.responseXML;
},
load_string : function(xmlstr)
{
if(document.implementation && document.implementation.createDocument)
{
var parser = new DOMParser();
var doc = parser.parseFromString(xmlstr,"text/xml");
}
else if(window.ActiveXObject)
{
var doc = Try.these(
function() { new ActiveXObject('Microsoft.XMLDOM') },
function() { return new ActiveXObject('Microsoft.DomDocument')},
function() { return new ActiveXObject('MSXML.DomDocument') },
function() { return new ActiveXObject('MSXML2.DomDocument') },
function() { return new ActiveXObject('MSXML3.DomDocument') }
) || false;
doc.async = false;
doc.load(xmlstr);
}
return doc || null;
},
xslt : function(xmldoc,xsldoc,param)
{
try
{
if(document.implementation && document.implementation.createDocument)
{
var proc = new XSLTProcessor();
proc.importStylesheet(xsldoc);
if (param){
params = explode(", ", param);
for (i = 0; i<params.length; i = i+2){
if (!params[i] || !params[i+1]) continue;
name = params[i];
value = params[i+1];
proc.setParameter(null, name, value);
}
}
var xhtmldoc = proc.transformToDocument(xmldoc);
var ser = new XMLSerializer();
return ser.serializeToString(xhtmldoc);
}
else if(window.ActiveXObject)
{
if (param){
params = explode(", ", param);
for (i = 0; i<params.length; i = i+2){
if (!params[i] || !params[i+1]) continue;
name = params[i];
value = params[i+1];
alert(name+value);
xmldoc.setParameter(null, name, value);
}
}
return xmldoc.transformNode(xsldoc);
}
} catch (e) {}
},
asXML : function(xmldoc)
{
if(document.implementation && document.implementation.createDocument)
{
var ser = new XMLSerializer();
return ser.serializeToString(xmldoc);
}
else if(window.ActiveXObject)
{
return xmldoc.xml;
}
}
}
Собственно сама проблема лежит тут:
else if(window.ActiveXObject)
{
if (param){
params = explode(", ", param);
for (i = 0; i<params.length; i = i+2){
if (!params[i] || !params[i+1]) continue;
name = params[i];
value = params[i+1];
alert(name+value);
xmldoc.setParameter(null, name, value);
}
}
return xmldoc.transformNode(xsldoc);
}
Без xmldoc.setParameter(null, name, value); все работает, с xmldoc.setParameter(null, name, value); xshtml получаю undefuned.
В чем дело, объясните?