javascript - Javascript XML 解析器无法在 Firefox 上运行
问题描述
我需要将美化的 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>
解决方案
推荐阅读
- javascript - OnFocus 事件未触发 React Final Form 中的自定义组件
- c++ - 是否可以在没有明确专业化的情况下推断模板参数?
- javascript - 页面刷新图像随机加载
- ssl - FAILED_NOT_VISIBLE 在创建谷歌托管 ssl 证书时出错
- bash - 在 simphony-remote 中为 docker 部署创建基本映像时出错
- spring - 无法让 Spring Boot 启用缓存
- javascript - 如何确保在输入时,“+”号不会像这样“%2b”发出?
- npm - 定义通过 npx 运行的默认命令
- pyspark - 如何使用pyspark从按某些字段分组的给定数据集中获取最大值(日期)?需要在pyspark中打印出所有符合这个条件的记录
- java - 尝试使用带有 spring 的 jsp 表单发布时出现 Whitelabel 错误