自 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.hmtl 文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>xml data island</title>
</head>
<body>
<xml id="employees"> <!-- 唯一 id -->
<?xml version="1.0" encoding="utf-8" ?>
<employees>
<employee>
<id>1</id>
<name>zhaipuhong</name>
<gender>male</gender>
<age>28</age>
</employee>
<employee>
<id>2</id>
<name>dingxia</name>
<gender>female</gender>
<age>25</age>
</employee>
</employees>
</xml>
<xml id="majors" src="major.xml"></xml> <!-- 唯一 id -->
<table datasrc="#employees"> <!-- 请不要忘了符号 '#' -->
<tr><!--<div> 标签允许 datafld 属性引用要显示的 XML 元素-->
<td><div datafld="id"></div></td>
<td><div datafld="name"></div></td>
<td><div datafld="gender"></div></td>
<td><div datafld="age"></div></td>
</tr>
</table>
<table datasrc="#majors"> <!-- 请不要忘了符号 '#' -->
<tr><!--<span> 标签允许 datafld 属性引用要显示的 XML 元素-->
<td><span datafld="name"></span></td>
<td><span datafld="term"></span></td>
</tr>
</table>
</body>
</html>
major.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<majors>
<major>
<name>Information Technology</name>
<term>4 year</term>
</major>
<major>
<name>mathimatics</name>
<term>4 year</term>
</major>
</majors>
<table> 标签的 datasrc 属性把 HTML 表格绑定到 XML 数据岛。
运行结果如下:
1 zhaipuhong male 28
2 dingxia female 25
Information Technology 4 year
mathimatics 4 year
以上简单介绍了 IE 浏览器中使用 XML 数据岛 ,那么要跨浏览器使用 XML 数据岛 则应该使用 XML DOM 解析器。它解析包含序列化 XML 文档的字符串并为解析后的 XML 生成文档。Mozilla 使用 DOMParser
类,它接受序列化字符串并用它创建 XML 文档。在 Internet Explorer 可用 ActiveX 实现同样的功能。下面简要学习一下。
微软的 XML 解析器内建于 Internet Explorer 5 以及更高的版本中,在 JavaScript 中创建并载入 xml 文件:
//创建一个空的微软 XML 文档对象
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false"; //关闭异步加载
//解析器加载 XML 文档
xmlDoc.load("major.xml");
//若加载xml字符串而非XML文件,使用下面的语句
//xmlDoc.loadXML(xmlString); //加载 xml 字符串(文本),根据需要选用
//注意:loadXML() 方法用于加载字符串(文本),load() 用于加载文件
在 Mozilla 的 Firefox 及其他浏览器中的 XML 解析器 ,示例如下:
//创建一个空的微软 XML 文档对象
var xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false"; //关闭异步加载
//加载 XML 文档
xmlDoc.load("major.xml");
//若加载xml字符串而非XML文件,使用下面的语句
var parser=new DOMParser();
var doc=parser.parseFromString(xmlString,"text/xml");
下面给一个完整是浏览器兼容的示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>浏览器兼容的 XML DOM 实例</title>
</head>
<body>
<script>
//一个浏览器兼容的实例
var xmlDoc = null;
if(window.ActiveXObject){
xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); //Internet Explorer
}else if(document.implementation.createDocument){
xmlDoc = document.implementation.createDocument("","",null); //Mozilla
}
xmlDoc.async=false;
xmlDoc.load("major.xml");
document.write(xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue);
</script>
</body>
</html>
分享到:
- 2008-07-20 17:59
- 浏览 1779
- 评论(0)
- 论坛回复 / 浏览 (0 / 3611)
- 查看更多
相关推荐
在本主题“XML基础实例 数据岛”中,我们将深入探讨XML的基础概念,以及如何使用XML创建数据岛,这是一个在网页中嵌入XML数据的技术。 1. **XML的基本结构** - XML文档由元素组成,元素是XML文档的构建块。每个...
"XML之数据岛"这个概念,主要指的是在HTML文档中嵌入XML数据的技术,也称为“HTML中的XML数据岛”或“XML Data Islands”。这种技术允许开发者在传统的HTML页面中直接嵌入XML数据,使得页面不仅包含展示信息,还能够...
在本主题“XML分页排序数据岛”中,我们将深入探讨如何利用XML数据岛实现数据的分页和排序功能,特别是在与后台数据源结合的情况下。 首先,理解XML数据岛的概念至关重要。XML是一种结构化数据的标记语言,用于存储...
这个例子可能展示如何在网页中使用XML数据岛来提高数据的动态性和可操作性。 首先,我们需要理解XML的基本结构。XML文档由元素构成,每个元素都有开始标签和结束标签,如 `<element>` 和 `</element>`。元素可以...
1. **XML数据岛的概念**:在XML数据岛中,每个“岛”都包含了一组相关的XML文档或数据片段。这些岛屿可以根据业务需求、数据类型或者数据来源进行划分,使得数据的管理和分析更加有针对性。例如,一个企业可能有一个...
在实际项目中,应根据需求选择合适的技术栈,如现代前端框架(React, Vue, Angular等)提供的数据绑定机制,它们在很多方面已经取代了XML数据岛的功能,但理解XML数据岛的概念和技术仍然是提升开发者技能的重要一环...
数据岛是指存在于HTML页面中的XML代码。数据岛允许你在HTML页面中集成XML,对XML编 写脚本,而不需要通过脚本或<OBJECT>标签读取XML。
数据岛通常通过`<xml>`标签来创建,如`<xml id="myData" src="data.xml"></xml>`,其中`id`属性用于标识数据岛,`src`属性则指定了XML数据的来源。 在实际应用中,DSO模型和数据岛经常结合使用。例如,一个HTML页面...
数据源对象(DSO)是实现数据岛的关键,它将XML文档视作类似数据库的对象,允许对XML数据进行读取、添加、删除和更新等操作。数据岛的特点包括使用`<xml>`标签嵌入XML数据,内存中以树状结构解析XML,并能通过数据...
3. **跨平台通信**: XML作为一种标准格式,可以被多种语言和平台解析,JavaScript操作XML数据岛有助于实现跨平台的数据交互。 4. **富互联网应用(RIA)**: 在RIA中,JavaScript和XML结合,能构建复杂且互动性强的...
数据岛是将XML数据嵌入到HTML文档中的技术,使网页能够利用XML的数据功能。通过使用脚本语言(如JavaScript)或服务器端技术(如ASP.NET),可以动态地操作这些数据。 **XPath(XML Path Language)**: XPath是一...
本教程将带你逐步了解XML的基础知识,包括XML的结构、Schema的使用、DOM解析以及XSLT转换,还有数据岛的概念。 **第一章 XML基础** XML的设计目标是传输和存储数据,而不是显示数据。它强调的是结构和语义,而不是...
xml基础,xml语言的定义,xml的数据岛,xml结点的设置、获取。
XML数据岛结合DOM的优点在于能够实时更新和操作页面上的XML数据,增强了网页的交互性和动态性。 总之,XML是一种强大的数据交换和存储语言,其结构化和语义化的特性使其在不同系统之间传递数据时非常有用。通过掌握...
标题中的“用JSP写的基于数据岛技术的xml购物车 源码”是指使用JavaServer Pages(JSP)技术和XML数据岛技术实现的一个在线购物车应用。这种应用不依赖于传统的数据库存储,而是利用XML文件来管理和保存购物车中的...
最后,数据岛(Data Islands)可能在课程的某个部分被提及,这是在HTML中嵌入XML数据的技术,使得JavaScript可以更方便地操作和展示数据。 通过这些文档的学习,你将能够创建、解析和操作XML文档,理解如何利用XML...
XML数据岛的实现主要分为内嵌和外部链接两种方式。内嵌方式是直接将XML文档内容写入HTML文件中,而外部链接则是通过`<XML>`标签的`SRC`属性引用一个外部XML文件。无论哪种方式,XML数据都会被嵌入到HTML页面中,便于...
XML数据岛是HTML页面中嵌入的XML代码段,它允许网页局部更新,避免...尽管现在有其他更现代的技术如AJAX和JSON,但在早期的Web开发中,XML数据岛是一个重要的进步,为后来的富互联网应用程序(RIA)的发展奠定了基础。
在HTML+xml数据岛的应用中,这些幻灯片的内容可以从XML文件中动态加载。例如,"Photos"文件夹可能包含幻灯片要用到的所有图片,而"XMLFile.xml"则可能存储关于每张图片的描述、标题等元数据。 "TextFile.txt"可能是...
XML(eXtensible Markup Language)是一种用于标记数据的语言,它的设计目的是传输和存储数据,而不是显示数据。...通过实践这些“数据岛”,你可以深化对XML及其相关技术的理解,并提升处理和解析XML数据的能力。