function doXSL(xsl_filename, xml_text)
{
  var result = "";
  if (window.ActiveXObject)
  {
    var xml = new ActiveXObject("Microsoft.XMLDOM");
    xml.async = false;
    xml.loadXML(xml_text);
    var xsl = new ActiveXObject("Microsoft.XMLDOM");
    xsl.async = false;
    xsl.load(xsl_filename);
    result = xml.transformNode(xsl);
  }
  else
  {
    var xml = (new DOMParser()).parseFromString(xml_text, "text/xml");
    var xsl = document.implementation.createDocument("", "", null);
    xsl.async = false;
    xsl.onload = function()
    {
      var processor = new XSLTProcessor();
      processor.importStylesheet(xsl);
      result = (new XMLSerializer()).serializeToString(processor.transformToDocument(xml));
    }
    xsl.load(xsl_filename);
  }  
  return result;
}
