Javascript XML解析器无法在Firefox上运行

时间:2018-12-04 14:08:02

标签: javascript html domparser

我需要将经过修饰的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>

0 个答案:

没有答案