构建自己的轻量级XML DOM分析程序
日期:2007年7月6日 作者: 查看:[大字体 中字体 小字体]-
XML正迅快速的成为数据存储和交换的标准格式流行开来了。现在可用的完整的Java XML分析器非常庞大而且功能强大--但是实现这些强大的功能的同时也要消耗等量的资源。举例来说,流行的Apache Xerces-J分析器超过1.7 MB,而最新的完整的Sun JAXP(用于XML处理的Java应用编程接口)实现程序包超过了3MB。因此使用一个功能强大的XML分析器可能过于浪费。如果配置环境是一个Java小程序或者是一个J2ME应用程序,网络带宽或者系统存储器的制约可能根本不能够使用完整的XML分析器。本文将告诉你如何构建一个轻量级的XML DOM分析程序。
开始编写SimpleDOMParser
SimpleDOMParser是一个使用Java写的高度简化和超轻量级的XML DOM分析器。 你可以将配置整个分析器配置为一个小于4KB的.jar文件。源程序还不到400行呢。
显然,使用这么小的代码,SimpleDOMParser将不支持XML域名空间,不能够理解多字符集编码或者以DTD文件或者schema验证文件;但是SimpleDOMParser能做的就是把符合语法规则的XML标记解析为一个类似于DOM的元素树,让你执行从XML格式化文本提取的数据的公共任务。
为什么使用DOM作为模型而不是SAX呢?这是因为DOM提供一个比SAX更加易用的程序接口。与SAX不同的是,当你把一个XML文件作为一个DOM树来处理的时候,这个文件内的所有的信息都是可以利用的。虽然SAX分析模型能够提供比DOM模型更加优异的性能和利用更少的存储空间,但是大部分开发者在使用SAX的时候都会发现他们自己正在创建一个完整的或者部分的DOM树。使用SAX,一个应用程序每次只能处理一条标记。如果其它的标记内容在处理的过程中必须被用到,那你就必须在处理的整个过程保持一种全局状态。而保持全局状态正是DOM模型目的的精髓。但是许多小型的XML应用程序不需要完整的DOM模型。因此,SimpleDOMParser提供到标记名、层次和内容的访问,但是不涉及完整的W3C DOM的许多用不上的功能。
简化DOM模型
一个DOM树是由分析XML文件产生的结点组成。结点是一个XML实体的非存储表现。标准W3C DOM模型有几种类型的结点。 举例来说,一个文本结点表示在XML文件中的一段文本,一个元素结点表示XML文件而一个属性结点表示一个元素内部的属性名和值。
DOM是一个树,因为除了根或文件结点以外的每个结点都有一个父结点。举例来说,属性结点总是和一个元素结点相关联,而用来封装元素的起始标记和结束标记中的文本是映射到一个文本结点的。文本结点是元素结点的一个子节点。所以,即使很简单的XML文件的表现也可能会需要很多种节点类型。
<parser>SimpleDOMParser</parser>
DOM模型使用一个document类型节点来封装整个XML文件,所以DOM使用三种不同的节点。通过把所有的DOM节点类型抽象成为一个单独的类型SimpleElement来尽可能的简化DOM模型。一个SimpleElement获得一个XML元素的关键的信息,比如标识名、元素属性和任何封装的文本或者XML。此外,SimpleDOMParser不使用任何特殊的节点类型表示最高等级的文档。结果是大大地简化了DOM树,使之只包含SimpleElement节点。
代码段1给出了SimpleElement类的完整的源程序。
public class SimpleElement {
private String tagName;
private String text;
private HashMap attributes;
private LinkedList childElements;
public SimpleElement(String tagName) {
this.tagName = tagName;
- [1] [2] [3] [4] [5] [6] [7] [8] 下一页
- 构建自己的轻量级XML DOM分析程序 相关文章:
- ·构建自己的轻量级XML DOM分析程序
- 构建自己的轻量级XML DOM分析程序 相关软件
上一篇:基于事件解析的SAX模型分析
下一篇:跟我学XML和XSL
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·关于web.xml配置的详细说明
- ·XSL/XML网页制作入门,入门到精通
- ·XML轻松学习手册(三):XML的术语
- ·XML轻松学习手册(一):XML快速入门
- ·XML Schema定义元素的基本知识
- ·用XML+JSP实现网页内容动态显示的方案
- ·自定义应用程序配置文件(app.config)
- ·XML轻松学习手册(二):XML概念
- ·XSL教程:了解基础知识关于XSL
- ·使用标签显示完整的svg图像
- ·XML轻松学习手册(四):XML语法
- ·XHTML标签写法应该注意的问题
- ·利用XMLHTTP无刷新添加数据
- ·如何使用XML实现多渠道接入网站的构架
- ·XHTML教程,简单认识XHTML基础知识
- ·常用的XHTML标签的使用技巧介绍
- ·网页设计学习XHTML应用小结
- ·XHTML 1.0 参考
- ·Xml 串行话对象与反串行实例
- ·XQuery 初学者入门教程:XQuery 术语和语法
特别推荐
