XML认证考试知识点:Parser
一个 XML Parser(解析器)是一段可以读入一个文档并分析其结构的代码。下面小编为大家整理了关于Parser的XML认证考试知识点,一起来看看吧:
如何使用一个解析器
通常而言,使用一个解析器需要如下步骤:
创建一个解析器对象
将您的 XML 文档传递给解析器
处理结果
构建一个 XML 应用显然远远超出这些,但通常一个 XML 的应用将包含这些流程。
解析器种类
有不同的方法来划分解析器种类:
验证或非验证解析器
支持 Document Object Model (DOM) 的解析器
支持 Simple API for XML (SAX) 的解析器
特定语言编写的解析器 (Java, C++, Perl 等)
接下来我们将讨论这几种解析器的各自特点.
验证或非验证解析器
如我们在前面所提及的,XML 文档如果使用一个 DTD 并符合 DTD 中的规则将被称为有效文档(valid document)。符合基本标记规则的 XML 文档被称为格式正确文档(well-formed document)。
XML 规范要求所有的解析器当其发现一个文档不是格式正确时要报错。
验证(Validation)则是另一个问题了。验证解析器(Validating parser)在解析 XML 文档同时进行验证。非验证解析器(Non-validating parser) 忽略所有的验证错误。
换而言之,如果一个 XML 文档是格式正确的时,一个非验证解析器并不关注文档是否符合其对应 DTD 所指定的规则(如果有的话)。
为何使用非验证解析器?
速度和效率。要一个 XML 解析器处理 DTD 并确保每个 XML 的元素符合在 DTD 中的规则需要相当大的开销。如果您确定一个 XML 文档是有效的(可能来自一个数据源),那就没有必要再次验证它了。
同样,有时您所需要的只是从一个文档中找出 XML 的标记。一旦您有了这些标记,您可以将数据从中提取出然后加以处理。如果这就是您所需要的,一个非验证解析器就是正确的.选择。
Document Object Model (DOM)
文档对象模型(Document Object Model)是 World Wide Web Consortium(W3C) 的正式推荐。它定义了一个接口使得程序可以存取和更新 XML 文档的风格、结构和内容。支持 DOM 的 XML 解析器实现该接口。
该规范的第一版,DOM Level 1,可从 获得。
当您用一个 DOM 解析器来解析一个 XML 文档时,您将获得一个包含文档中所有元素的树结构。DOM 提供了不同的功能来检查文档的内容和结构。
Simple API for XML (SAX)
SAX API 是另一种处理 XML 文档内容的方法。一个既成事实的标准,它由 David Megginson 和 XML-Dev 邮件列表其它成员所开发。
要查看完整的 SAX 标准,参见 。要参加 XML-Dev 邮件列表,发送邮件到 其中包含: subscribe xml-dev。
当您使用 SAX 解析器来解析 XML 文档时,解析器在文档的不同处将产生事件。由您来决定对每个事件如何处理。
SAX 解析器会在以下情况下产生事件:在文档开始和结束时,在一个元素开始和结束时,或者它在一个元素中找到字符时,以及其它若干点。您可编写 Java 代码来处理每个事件,以及如何处理从解析器获得的信息。
何时使用 SAX?何时使用 DOM?
为了确定哪种接口适合您,您需要理解所有接口的设计要点,而且需要理解应用程序用您将要处理的 XML 文档来做什么。考虑下面的问题将有助于您找到正确的方法。
要用 Java 编写应用程序吗?
JAXP 使用 DOM、SAX 和 JDOM;如果您用 Java 编写代码,那么您应使用 JAXP 将您的代码与各种解析器实现的细节隔离。
应用程序将如何部署?
如果您的应用程序将要作为 Java applet 部署,那么您会希望使要下载的 代码数量最小,别忘了 SAX 解析器比 DOM 解析器小。还要知道使用 JDOM 时,除了 SAX 或 DOM 解析器之外还要求编写少量的代码。
一旦解析了 XML 文档,还需要多次访问那些数据吗?
如果您需要回过头来访问 XML 文件的已解析版本,DOM 可能是正确的选择。 而 SAX 事件被触发时,如果您以后需要它,则由您(开发人员)自己决定以 某种方式保存它。如果您需要访问不曾保存的事件,则必须再次解析该文件。 而 DOM 自动保存所有的数据。
只需要 XML 源文件的少量内容吗?
如果您只需要 XML 源文件的少量内容,那么 SAX 可能是正确的选择。SAX 不会为源文件中的每个东西创建对象;您要确定什么是重要的。使用 SAX, 您要检查每个事件以了解它是否与您的需要有关,然后相应地处理它。更妙 的是,一旦找到您正在寻找的东西,您的代码就会抛出一个异常来完全停止 SAX 解析器。
您正在一台内存很少的机器上工作吗?
若是的话,不管您可能考虑到的其它因素是什么,SAX 是您的最佳选择。
要知道还存在用于其它语言的 XML API;尤其是 Perl 和 Python 社区有极佳的 XML 工具。
相關文章
-
XML认证知识点:SAX Parser
读取和操纵 XML(XML培训 编程语言培训 ) 文件的标准方法是 DOM(文档对象模型)。遗憾的是,这种方法需要读取整个文件并将它存储到树结构中,因而效率不高、缓慢,并且会过度使用资源。一种替代方法是使用 Simple API for XM -
XML认证知识点:DOM Parser
DOM Document 是以层次结构组织起来的节点,或信息片段的集合。这种层次结构允许开发者浏览树来查找特定信息。通常,分析结构需要在完成任何工作之前装入整个文档并且装入层次结构。 基本的应用程序从创建基本的应用 -
XML认证教程:SAX Parser
SAX 是由 XML-DEV 邮件列表的成员开发的,Java 版本由 David Megginson 维护。他们的目的是提供一种更自然的方法来使用 XML, 这种方法不会涉及到使用 DOM 的那种开销。 什么是 SAX读取和操纵 XML 文件的标准方法是 D -
XML认证教程:DOM Parser
袁枚(1716-1798)【意思解释】清代诗人。字子才,号简斋,钱塘(今浙江杭州)人。乾隆年间进士。曾任江宁等地知县。后辞官定居江宁(今江苏南京),在小仓山隋氏废园建园林,改园名,为随园,自号随园老人。论诗提倡“性灵”说,对儒家 -
XML认证知识点:XML Schema
XML(XML培训 编程语言培训 ) Schema如同DTD一样是负责定义和描述XML文档的结构和内容模式。它可以定义XML文档中存在哪些元素和元素之间的关系,并且可以定义元素和属性的数据类型。 什么是XML SchemaXML Schema如同 -
MS SQL Server Management Studio Express安装图文具体步骤
Microsoft sql server Management Studio Express (SSMSE) 是一种免费、易用的图形管理工具,用于管理 SQL Server 2005 Express Edition 和具有高级服务的 SQL Server 2005 Express Edition。SSMSE 还可以管理任何版本 -
雅思口语范文:My Experience as an English Learner
I began leaing English in the middle school. Soon I became very interested in it. English exams were very easy to me and I always got the highest marks in my class. Then I succeeded in the College Ent -
SUN认证考试知识点:java servlet生命周期
Servlet是使用 Java Servlet应用程序设计接口及相关类和方法的Java程序。它在Web服务器上或应用服务器上运行并扩展了该服务器的能力。Java Servlet对于Web服务器就好像Java Applet对于Web浏览器。Applet装入Web浏览 -
ACCA P3考试必考知识点:Linear regression
为帮助大家更好复习ACCA考试,今天yjbys小编为大家带来ACCA P3考试Linear regression里面的知识点,由于全都是英文,大家不认识的可以去查阅相关字典工具,方便理解!Least squares linear regression is a method of fitting -
Adobe认证Premiere Pro CS4考试大纲
Adobe Premiere Pro CS4是一款常用的视频编辑软件,是一款编辑画面质量比较好的软件,有较好的兼容性,且可以与Adobe公司推出的其他软件相互协作。这款软件广泛应用于广告制作和电视节目制作中。考试数量:考试试题共40道考