打印

BT9036: 只有 IE 支持 XML 数据岛

作者:陆远

标准参考

问题描述

数据岛(XML Data Islands)为微软的专有技术,只有 IE 支持。它允许在 HTML 页面中集成 XML,并将其当作 XMLDocument 对象进行操作。

造成的影响

若代码中使用了 XML 数据岛,则仅能在 IE 中可以使用其功能。在其他浏览器中可能会造成脚本错误。

受影响的浏览器

IE6 IE7 IE8  

问题分析

XML Data Islands 为微软的专有技术,数据岛(XML Data Islands)是指存在于 HTML 页面中的 XML 代码。数据岛允许在 HTML 页面中集成 XML,对 XML 编写脚本,不需要通过脚本或 <OBJECT> 标签读取 XML。几乎所有能够存在于一个结构完整的 XML 文档中的内容都能存在于一个数据岛中。包括处理指示、DOCTYPE 声明和内部子集。

测试代码:

<xml id="xml" src="menu.xml"></xml>
<script>
alert(document.getElementById("xml").XMLDocument);
</script>

如 MSDN 中所述,上面代码在 HTML 页面中创建了一个 XML 数据岛,并通过脚本访问数据岛的一个对象 XMLDocument。
则各浏览器中返回结果如下:

IE Chrome Safari Firefox Opera
[Object] undefined

可见,这种数据岛仅 IE 支持,其他浏览器对于 XML 仅能返回 HTMLElement,而 IE 中则是 HTMLGenericElement 。

解决方案

应考虑其他标准的、符合 W3C 规范的、各浏览器均支持的 XML 相关技术解析 XML 文档。

参见

知识库

相关问题

测试环境

操作系统版本: Windows 7 Ultimate build 7600
浏览器版本: IE6
IE7
IE8
Firefox 3.6.3
Chrome 6.0.422.0 dev
Safari 4.0.5
Opera 10.53
测试页面: xmldi.html
本文更新时间: 2010-07-15

关键字

XML XMLDocument Data Island 数据岛