function encHtml(s){ s = s.replace(//g,">"); s = s.replace(/"); }else{ s = s.replace(/@@@@newLine@@@@/g,"\n"); } return s; } function transform(){ document.getElementById("result").innerHTML=""; var xml = document.getElementById("xml").value; var xsl = document.getElementById("xsl").value; var result = ""; if(xml && xsl){ if (window.ActiveXObject)// Internet Explorer { var xmlDoc = new ActiveXObject("Msxml2.DOMDocument"); var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument"); xmlDoc.loadXML(xml); xslDoc.loadXML(xsl); } else if (window.DOMParser) { var parser=new DOMParser(); xmlDoc=parser.parseFromString(xml,"text/xml"); xslDoc=parser.parseFromString(xsl,"text/xml"); } try{ // code for IE if (window.ActiveXObject) { var xslt = new ActiveXObject("Msxml2.XSLTemplate"); xslt.stylesheet = xslDoc; var xslProc = xslt.createProcessor(); xslProc.input = xmlDoc; xslProc.transform(); result=xslProc.output; document.getElementById("result").innerHTML=encHtml(result); } // code for Mozilla, Firefox, Opera, etc. else if (document.implementation && document.implementation.createDocument) { xsltProcessor=new XSLTProcessor(); xsltProcessor.importStylesheet(xslDoc); result = xsltProcessor.transformToFragment(xmlDoc,document); var nodeRes = document.getElementById("result"); nodeRes.appendChild(result); nodeRes.innerHTML = encHtml(nodeRes.innerHTML); } } catch(e){ result = "Error: " + e; document.getElementById("result").innerHTML=encHtml(result); } } }