微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。