IE11兼容模式下XSLT将<param>节点转为非闭合自结束标签问题
问题:阻止浏览器引擎将XML的
<param>标签转为无闭合斜杠的自结束标签 本问题与「XSLT converts node to
tag when outputing to DOM」高度相关。
为避免XSLT转换器将XML中的<image>节点转为HTML的<img>标签,我们通过以下XSLT代码把XML文档内容输出到HTML页面的<script type="application/xml">标签中,后续可使用JavaScript的DOMParser()解析这些XML数据,无需用XSLT直接生成网页:
<script type="application/xml" id="data"> <xsl:copy-of select="/*" /> </script>
但实际使用中发现问题:XML里的<param>节点被转为无闭合斜杠的自结束标签,导致输出的XML内容损坏,无法被正常解析。(补充:最初误以为是DOMParser()无法处理自结束标签,实际是无斜杠的标签格式不符合XML规范导致解析失败)
复现步骤
- 准备test.xslt和test.xml文件
- 使用Edge浏览器以IE11兼容模式打开test.xml,可观察到head中script标签内的XML已失真
现咨询:如何阻止浏览器引擎将<param>标签转为无闭合斜杠的自结束标签?
内容的提问来源于stack exchange,提问作者Glenn Carver
相关产品推荐
相关产品推荐

