javascript – DOMParser或XMLSerializer在IE9中删除了我的命名空间声明
作者:互联网
所以我认为可能比我正在做的更清晰的解决方案,但我想知道这是否是一个已知的问题,如果有一些明显我做错了等等……
由于不值得描述的原因,我有一些Javascript代码,在一个可能的路径中,使用DOMParser从字符串加载XML,然后使用XMLSerializer将其序列化回字符串. XML文档是XSL样式表.主xsl:stylesheet标记中有两个xmlns元素:一个声明xsl命名空间,另一个声明我使用的自定义命名空间. (称之为“foo”)
至少在IE9中,当我通过DOMParser从往返返回输出时,xmlns:xsl元素仍然存在,但缺少xmlns:foo元素.这是预期的行为吗?我错过了什么?
解决方法:
我做了一个测试用例http://home.arcor.de/martin.honnen/javascript/2012/test2012070901.html,我可以确认Windows 7上的IE 9的输出是
Input
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:foo="http://example.com/foo">
<xsl:template match="foo:bar">Test</xsl:template>
</xsl:stylesheet>
Output
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="foo:bar">Test</xsl:template>
</xsl:stylesheet>
所以删除了名称空间声明.我认为IE 9中存在一个错误,您可能需要检查connect.microsoft.com是否已报告此类内容,如果没有报告.有人在这里使用IE 10阅读? IE 10显示什么?
[编辑] IE 10上存在连接问题,可能是相关的:https://connect.microsoft.com/IE/feedback/details/728093/xmlserializer-omits-xmlns-attributes.
标签:javascript,xml,internet-explorer-9,xslt,xml-namespaces 来源: https://codeday.me/bug/20190709/1414622.html