xml dom编程模型简单参考手册

上传人:xzh****18 文档编号:34611196 上传时间:2018-02-26 格式:DOC 页数:13 大小:198.50KB
返回 下载 相关 举报
xml dom编程模型简单参考手册_第1页
第1页 / 共13页
xml dom编程模型简单参考手册_第2页
第2页 / 共13页
xml dom编程模型简单参考手册_第3页
第3页 / 共13页
xml dom编程模型简单参考手册_第4页
第4页 / 共13页
xml dom编程模型简单参考手册_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《xml dom编程模型简单参考手册》由会员分享,可在线阅读,更多相关《xml dom编程模型简单参考手册(13页珍藏版)》请在金锄头文库上搜索。

1、XML DOM编程模型简单参考手册文档对象模型(Document Object Model,DOM)是应用在 Web浏览器中的一项技术。浏览器的窗口、文档和历史等对象都被认为是对象模型的一部分。然而,各种浏览器访问和操作这些对象的方式都是不相同的。为了创建更加标准化的方法,W3C 提出了目前的 W3C DOM规范。W3C DOM是一种独立于语言和平台的定义,它定义了构成 DOM的不同对象,但是却没有提供具体的实现方法。实际上,它能够用任何编程语言实现。利用 DOM中的对象,开发人员可以对文档进行读取、搜索、修改、添加和删除等操作。DOM 为文档导航以及操作 HTML和 XML文档的内容和结构提

2、供了标准函数。本章中,将重点介绍文档对象模型,使用这种技术可以通过程序操作 XML文档。本章重点: 文档对象模型的定义 XML 解析器概述 DOM 解析器的模型结构与使用8.1 文档对象模型概述文档对象模型定义了文档的逻辑结构和访问、操纵文档的方法,它为 XML、HTML 提供了应用程序接口API。DOM 中的对象允许开发者从文档中读取、搜索、修改、增加和删除数据,它们为文档导航提供了标准的功能定义,并且操纵 XML文档的内容和结构。DOM 提供的对象和方法可以和任何编程语言(Java、C+、.NET)一起使用,也可以与 VBScript、JavaScript 等脚本语言一起使用。要想访问 X

3、ML文件,DOM 可以算作是可选的访问方法之一。与其他用于产生 XML文档的机制(例如,直接向一个流写入)相比,使用 DOM有以下几点优越性。1. DOM能够保证正确的语法和格式正规性由于 DOM将文本文件转化为以抽象的节点树表示,因此能够完全避免无结束标记和不正确的标记嵌套等问题。使用 DOM操作 XML文档时,开发人员不必担心文档的文本表示而只需要关注父子关系和相关的信息。另外,DOM 能够避免文档中不正确的父子关系。2. DOM能够从语法中提取内容由 DOM创建的节点树是 XML文件内容的逻辑表示,它显示了文件提供的信息,以及它们之间的关系,而不受限于 XML语法。3. DOM能够简化内

4、部文档操作就修改 XML文件的结构而言,使用 DOM比使用传统的文件操作机制更加简单,利用 DOM在文档中增加元素非常简便。另外,我们可以通过几条命令执行全局性操作(例如,从文档中删除具有特定标记名称的所有元素),而不必采用繁琐的方法-首先对文件进行扫描,然后删除相关的标记。4. DOM能够贴切地反映典型的层次数据库和关系数据库的结构DOM表示数据元素关系的方式非常类似于现代层次型和关系型数据库表示信息的方法。这使得利用 DOM在数据库和 XML文件之间移动信息变得相当简单。8.2 XML 解 析 器第 1章中,我们提到,解析器的主要功能就是检查 XML文件是否有结构上的错误,剥离 XML文件

5、中的标记,读出正确的内容,以交给下一步的应用程序处理。这里,我们详细介绍一下目前主要应用的四种 XML解析器,对它们的原理及性能的比较如下。1. DOM DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构时通常需要加载整个文档和构造层次结构,然后才能做其他工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。DOM 以及广义的基于树的处理具有以下几个优点。首先,因为树在内存中是持久的,所以可以修改 DOM树以便应用程序能对数据和结构做出更改。另外,它还

6、可以在任何时候在树中上下导航,而不是像 SAX 那样是一次性的处理。DOM的劣势是基于大文件的加载速度很慢,因为它需要全部加载后才能操作。因此对于特别大的文档,使用其他手段,比如基于事件的模型 SAX来处理会更好。2. SAXSAX是基于事件驱动的。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,就将发送事件,开发者可以通过编写响应这些事件的代码来保存数据。这种处理的机制非常类似于流媒体的处理方式。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中,这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个

7、文档,它可以在某个条件得到满足时停止解析。3. JDOM为减少 DOM和 SAX的编码量,出现了 JDOM接口。JDOM 的目的是成为 Java特定文档模型,它简化了与 XML 的交互并且比使用 DOM 的速度更快。由于是第一个 Java 特定模型,JDOM 一直得到大力推广和促进。JDOM与 DOM主要有两方面不同。首先 JDOM 仅使用具体类而不使用接口。这在某些方面简化了API(Application Piogramming Interface),但是也限制了灵活性。第二,其 API中大量使用了Collections类,简化了那些已经熟悉这些类的 Java开发者的工作。JDOM对于大多数

8、 Java/XML应用程序来说当然是有用的,并且大多数开发者发现 API 比 DOM容易理解得多。JDOM还包括对程序行为的广泛检查以防止用户做任何在 XML 中无意义的事。但是 JDOM自身不包含解析器,它通常使用 SAX2解析器来解析和验证输入 XML文档。4. DOM4JDOM4J代表了完全独立的开发结果,但最初,它是 JDOM的一种智能分支。它合并了许多超出基本 XML文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,同时它通过 DOM4J API 和标准 DOM接口具有并行访问功能。为支持所

9、有这些功能,DOM4J 使用接口和抽象基本类方法。DOM4J 大量使用了 API 中的 Collections类,但是在许多情况下,它还提供一些替代方法,可以提供更直接的编码方法,并提供更好的性能。直接好处是,虽然 DOM4J付出了更复杂的 API的代价,但是它提供了比 JDOM大得多的灵活性。在添加灵活性、XPath 集成和对大文档处理的目标时,DOM4J 的目标与 JDOM是一样的:针对 Java开发者的易用性和直观操作。它还致力于成为比 JDOM更完整的解决方案,实现在本质上处理所有 Java/XML问题的目标。在完成该目标时,它比 JDOM更少强调防止不正确的应用程序行为。DOM4J是

10、一个非常优秀的 Java XML API,具有性能优异、功能强大和易用的特点,同时它也是一个开放源代码的软件。如今我们可以看到越来越多的 Java软件都在使用 DOM4J 来读写 XML。总之,DOM 是与平台有关、与语言无关的由 W3C制定的官方标准。基于树的层次,其优点是可以移植,编程容易,开发人员只需要调用建树的指令。其缺点是加载大文件不理想。SAX是基于事件模型的,它在解析 XML文档的时候可以触发一系列的事件,当发现给定的 tag时,它可以激活一个回调方法,告诉该方法制订的标签已经找到。类似与流媒体的解析方式,所以在加载大文件时效果不错。JDOM是想成为 Java 特定文档模型。它简

11、化了与 XML的交互并且比使用 DOM的速度更快。使用的是具体类不使用接口,运用了大量的 Collections类,方便程序员操作。DOM4J是一个独立的开发结果是一个非常非常优秀的 Java XML API,具有性能优异、功能强大和极端易用的特点,同时它也是一个开放源代码的软件。8.3 DOM 解 析 树为了使用 XML DOM的功能,我们需要一个 DOM解析器。这个解析器读入 XML文档,并剖析确定该文档的正确性,然后,把文档内容在内存中表示成一个逻辑树型结构,这个树型结构是由节点组成的,最常见的节点类型如下。 元素:元素是 XML 的基本构件。元素可以有其他元素、文本节点或两者兼有来作为

12、其子节点。元素节点还是可以有属性的唯一类型的节点。 属性:属性节点包含关于元素节点的信息,但实际上,不认为它是元素的子节点。 文本:文本节点是文本。它可以包含许多信息,也可以一个是空白节点。 文档(根节点):文档节点是整个文档中所有其他节点的父节点。 较不常见的节点类型有 CDATA、注释和处理指令。我们可以使用 DOM解析器提供的 DOM对象来操纵这些节点。MSXML(Microsoft XML Parser)就是一种 DOM解析器。例如,对于拥有以下内容的 XML文档:1. 2. 3. 4. 曹雪芹 5. 红楼梦 6. 7. 8. 孙更新 9. XML实用大全 10. 11. DOM解析器

13、将此 XML文档读进来后,会生成一棵结构树,如图 8-1所示。在 XML文档结构中,如图 8-1中的每个圆圈表示一个节点,称为 XmlNode对象。XmlNode 对象是 DOM 树中的基本对象。XmlDocument 类(它扩展 XmlNode)支持用于对整个文档执行操作(例如,将文档加载到内存中或将 XML 保存到文件)的方法。此外,XmlDocument 提供了查看和操作整个 XML文档中节点的方法。XmlNode 和 XmlDocument都具有优良的性能和很强的可用性,并具有进行下列操作的方法和属性。 访问和修改特定于 DOM 的节点,如元素节点、实体引用节点等。 除检索节点包含的信

14、息(如元素节点中的文本)外,还检索全部节点。Microsoft XML Parser(MSXML)解析器的 DOM功能提供基本的以及扩展的编程接口。基本的接口(DOMDocument和 IXMLDOMNode)可以载入和创建一个文档,另外,我们也可以通过扩展的编程接口进行诸如跟踪在处理 XML文档时产生的错误这样的附加操作。当 MSXML 解析器载入文档时,解析器读入这个文档并且创建一个描述 XML文档组成部分的 DOM树型结构。解析器所创建的树型结构可以被各种不同的应用程序使用,用来访问和操纵 XML文档。如图 8-2所示,显示了 MSXML解析 XML文档的过程。图 8-3表示了 DOM的

15、工作路线。 通过图 8-3的 DOM工作路线图可以看出,XML 文档首先通过 XML解析器将文档解析为一棵树,并创建Document对象来表示,该树由节点组成,这些节点可以是元素、文本、属性或者其他类型,这些节点都是从属于某个命名空间的,可以通过 DOM API中的类调用不同的方法进行操作。8.4 DOM模型结构前面我们介绍过,XML DOM 提供了一个标准的方法来操作存储在 XML文档中的信息,这就是 DOM应用编程接口(API)函数。它是应用程序和 XML文档之间的桥梁。DOM 包含两个关键的抽象概念:一个是树状的层次结构,另一个是用来表示文档内容和结构的节点集合。树状层次包括了所有节点,

16、节点本身也可以包含其他的节点。这样的好处是可以通过这个层次结构来找到并修改某一特定节点的信息。使用 XML DOM,可以让我们遍历、读取和操纵 XML文档的结构和内容,其主要对象和方法如下。 DOMDocument 对象:描述全部文档映射表,它包括文档的所有信息。对开发人员来说,最重要的编程对象是 DOMDocument。DOMDocument 对象通过暴露的属性和方法来允许浏览、查询和修改 XML文档的内容和结构 IXMLDOMNode 对象:描述文档里的节点,此节点可以是元素、属性、处理指令、文本或其他存储在 XML文档里的信息。 IXMLDOMNodeList 对象:描述节点对象的集合,可以使用该对象遍历这个集合,可以用数值访问该集合。 IXMLDOMParseError 对象:用来验证 XML文档对于 DTD、XSD 的正确性。下面分别对

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 理论文章

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号