Javascript XSL in Google Chrome

I am using the following javascript code to display xml / xsl:

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 this script');
  }
  try {
    xmlDoc.async=false;
    xmlDoc.load(fname);
    return(xmlDoc);
    }
 catch(e)
 {
  try //Google Chrome
  {
   var xmlhttp = new window.XMLHttpRequest();
   xmlhttp.open("GET",file,false);
   xmlhttp.send(null);
   xmlDoc = xmlhttp.responseXML.documentElement;
   return(xmlDoc);
  }
  catch(e)
  {
   error=e.message;
  }
 }
}

function displayResult()
{
xml=loadXMLDoc("report.xml");
xsl=loadXMLDoc("report.xsl");
// code for IE
if (window.ActiveXObject)
  {
    ex=xml.transformNode(xsl);
    document.getElementById("example").innerHTML=ex;
  }
  // code for Mozilla, Firefox, Opera, etc.
  else if (document.implementation
  && document.implementation.createDocument)
  {
    xsltProcessor=new XSLTProcessor();
    xsltProcessor.importStylesheet(xsl);
    resultDocument = xsltProcessor.transformToFragment(xml,document);
    document.getElementById("example").appendChild(resultDocument);
  }
}

This works for IE and Firefox, but chrome doesn't work on line:

document.getElementById("example").appendChild(resultDocument);

Thanks for helping

+3
source share
2 answers

Google Chrome currently has limited XSL support. If your XSL refers to any external resources ( document(), xsl:import, xsl:includeor external objects), XSL will be launched, but the result will either be empty or invalid.

, : resultDocument document . importNode . , , resultDocument , , node innerHTML node . , , Chrome , ...

+5

, Chrome ( ) html. , tr - ( ), , ... ( , xslt html - .)

, xslt - , . .. :

<table><tbody><tr><td></td></tr></tbody></table>

:

<tbody><tr><td></td></tr></tbody>

:

<tr><td></td></tr>

, , tr , .

+3

Source: https://habr.com/ru/post/1727617/


All Articles