自 Microsoft Internet Explorer 5.0 起,Internet Explorer 有一个非标准特性称为 XML 数据岛,它允许使用非标准 HTML 标签 <xml>
在 HTML 文档中嵌入 XML。Mozilla 不支持 XML 数据岛,将其作为未知的 HTML 标签处理。所以,XML 数据岛只在 IE 浏览器中有效。现在的 web 应用客户端浏览器都要求支持多浏览器,这岂不是给我们出难题吗? 幸好 IE 和 Mozilla 都支持 XML DOM,我们可以使用 JavaScript 结合 XML DOM 来解析并显示 XML。
什么是 XML 数据岛? 数据岛就是被HTML页面引用或包含的XML数据,XML数据可以包含在HTML文件内,也可以包含在某外部文件内。就像 JavaScript 和 CSS 一样,你可以在 HTML 文挡中直接嵌入 XML 数据,也可以引用外部的 XML 数据。在把 XML 文档绑定到 HTML 文档中的一个 <xml> 标签。其id 属性为数据岛定义标识符,而其 src 属性指向 XML 文件。示例代码如下:
xmldataisland.html 文件
Html代码
major.xml 文件
Xml代码
<table> 标签的 datasrc 属性把 HTML 表格绑定到 XML 数据岛。
运行结果如下:
Html代码
以上简单介绍了 IE 浏览器中使用 XML 数据岛 ,那么要跨浏览器使用 XML 数据岛 则应该使用 XML DOM 解析器。它解析包含序列化 XML 文档的字符串并为解析后的 XML 生成文档。Mozilla 使用 DOMParser
类,它接受序列化字符串并用它创建 XML 文档。在 Internet Explorer 可用 ActiveX 实现同样的功能。下面简要学习一下。
微软的 XML 解析器内建于 Internet Explorer 5 以及更高的版本中,在 JavaScript 中创建并载入 xml 文件:
在 Mozilla 的 Firefox 及其他浏览器中的 XML 解析器 ,示例如下:
Js代码
下面给一个完整是浏览器兼容的示例:
Html代码