Делалось дааавноооо, так что не суди строго
var IE = (window.ActiveXObject) ? 1 : 0;
var NN = (window.XMLHttpRequest) ? 1 : 0;
var XMLdoc = new Object();
XMLdoc.loadFromFile = function (xml_name,xsl_name)
{
if (IE)
{
var xml = new ActiveXObject('Microsoft.XMLDOM');
var xsl = new ActiveXObject('Microsoft.XMLDOM');
xml.async = false;
xsl.async = false;
xsl.load(xsl_name);
xml.load(xml_name);
this.html=xml.transformNode(xsl);
}
else if (NN)
{
var xsltProcessor = new XSLTProcessor();
var myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open('GET',xsl_name,false);
myXMLHTTPRequest.send(null);
var xslStylesheet = myXMLHTTPRequest.responseXML;
xsltProcessor.importStylesheet(xslStylesheet);
myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open('GET',xml_name,false);
myXMLHTTPRequest.send(null);
var xml = myXMLHTTPRequest.responseXML;
var fragment = xsltProcessor.transformToFragment(xml,document);
var xmlser = new XMLSerializer();
this.html = xmlser.serializeToString(fragment);
}
}
XMLdoc.loadFromString = function (string,xsl_name)
{
if (IE)
{
var xml = new ActiveXObject('Microsoft.XMLDOM');
var xsl = new ActiveXObject('Microsoft.XMLDOM');
xml.async = false;
xsl.async = false;
xsl.load(xsl_name);
xml.loadXML(string);
this.html=xml.transformNode(xsl);
}
else if (NN)
{
var xsltProcessor = new XSLTProcessor();
var parser = new DOMParser();
var myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open('GET',xsl_name,false);
myXMLHTTPRequest.send(null);
var xslStylesheet = myXMLHTTPRequest.responseXML;
xsltProcessor.importStylesheet(xslStylesheet);
var xml = parser.parseFromString(string,'text/xml');
var fragment = xsltProcessor.transformToFragment(xml, document);
var xmlser = new XMLSerializer();
this.html = xmlser.serializeToString(fragment);
}
}
XMLdoc.loadFromString(document.getElementById('mytxt').value,document.getElementById('myxsl').value);
document.getElementById('main').innerHTML=XMLdoc.html;