Анализатор XML Javascript не работает в Firefox - PullRequest
0 голосов
/ 04 декабря 2018

Мне нужно вывести предварительно проверенный XML в таблицу HTML.Я использую этот синтаксический анализатор во фрагменте, который отлично работает на Chrome, но не работает на FF.

var prettifyXml = function(sourceXml) {
  var xmlDoc = new DOMParser().parseFromString(sourceXml, 'application/xml');
  var xsltDoc = new DOMParser().parseFromString([
    // describes how we want to modify the XML - indent everything
    '<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">',
    '  <xsl:strip-space elements="*"/>',
    '  <xsl:template match="para[content-style][not(text())]">', // change to just text() to strip space in text nodes
    '    <xsl:value-of select="normalize-space(.)"/>',
    '  </xsl:template>',
    '  <xsl:template match="node()|@*">',
    '    <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>',
    '  </xsl:template>',
    '  <xsl:output indent="yes"/>',
    '</xsl:stylesheet>',
  ].join('\n'), 'text/xml');


  var xsltProcessor = new XSLTProcessor();
  xsltProcessor.importStylesheet(xsltDoc);
  var resultDoc = xsltProcessor.transformToDocument(xmlDoc);
  var resultXml = new XMLSerializer().serializeToString(resultDoc);
  return resultXml;
};

var prettyXml = prettifyXml('<root><node/></root>');
document.querySelector('.output-holder').value = prettyXml;
<body>
  <div>Pretty XML output follows...</div>
  <textarea class="output-holder" rows="10" cols="30"></textarea>
</body>

Не могли бы вы, ребята, помочь мне?Спасибо.

Редактировать: Это желаемый результат (работает на Chrome):

<root>
   <node/>
</root>

Это вывод в Firefox:

<root><node/></root>
...