function loadXMLDoc(fname)
{
  var xmlDoc;
  // code for IE
  if (window.ActiveXObject)
  {
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
  // code for Mozilla, Firefox, Opera, etc.
  else if (document.implementation 
    && document.implementation.createDocument)
  {
    xmlDoc=document.implementation.createDocument("","",null);
  }
  else
  {
    alert('Your browser cannot handle the XML Transformation functions of this script (needed either Microsoft.XMLDOM or document.implementation.createDocument');
  }
  xmlDoc.async=false;
  xmlDoc.load(fname);
  return(xmlDoc);
}

function transformXML(xml, xslt)
{
	if(typeof xml == 'string')
  	xml=loadXMLDoc(xml);
	if(typeof xslt == 'string')
 	 xsl=loadXMLDoc(xslt);
	
  // code for IE
  if (window.ActiveXObject)
  {
    var el  = document.createElement('div');
    ex=xml.transformNode(xsl);
    el.innerHTML = ex;
    return el;
  }
  // code for Mozilla, Firefox, Opera, etc.
  else if (document.implementation 
    && document.implementation.createDocument)
  {
    xsltProcessor=new XSLTProcessor();
    xsltProcessor.importStylesheet(xsl);
    resultDocument = xsltProcessor.transformToFragment(xml,document);
      return resultDocument;
  }
	else
	{
    alert('Your browser cannot handle the XML Transformation functions of this script (needed either Microsoft.XMLDOM or document.implementation.createDocument');
	}
}