【发布时间】:2018-08-23 15:57:54
【问题描述】:
我想美化一些 XML,我发现了以下代码 (in this answer, JSFiddle)。我是这样修改的:
const 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">',
' <xsl:output omit-xml-declaration="yes" indent="yes"/>',
' <xsl:template match="node()|@*">',
' <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>',
' </xsl:template>',
'</xsl:stylesheet>',
].join('\n'), 'application/xml');
function prettifyXml(sourceXml) {
var xmlDoc = new DOMParser().parseFromString(sourceXml, 'application/xml');
var xsltProcessor = new XSLTProcessor();
// Error happens here:
xsltProcessor.importStylesheet(xsltDoc);
var resultDoc = xsltProcessor.transformToDocument(xmlDoc);
var resultXml = new XMLSerializer().serializeToString(resultDoc);
return resultXml;
};
我在运行代码时遇到错误,但该错误没有消息。在 Firefox 控制台中看起来像这样:
这就是我在调试器中看到的:
错误也发生在原始答案中的小提琴中。我想知道这是什么错误以及如何修复它。
我包含 Firefox 标签,因为我认为这不是正常的浏览器行为。我的版本是 61.0.2(64 位)。
【问题讨论】:
标签: javascript firefox xslt domparser