admin 管理员组文章数量: 1087649
2024年4月20日发(作者:select键是什么意思啊)
维普资讯
第 !卷 第3期
2O02年9月
西安科技学 院 学报
TECHNOL(X;h
VOl 22 ()3
JOURNAI OF XI’AN UNIVERSITY OF SCIENCE A
Sept f)f)
文章编号:1671—1912(2002)03—0318—03
用Java集合类处理XML文档
周筱媛
(西安科技学院计算机系,陕西西安 710054)
摘要:XML,作为HTML语言的一种补充,具有如可扩展性、简单性、开放性、互操作性、支持
多国语言等有一系列特性,这就使得它必将成为新一代Www环境的主要工具:但由于XML
文件只是文本文件,它本身并不带有任何的处理数据能力,因此必须辅以其它的工具来应用它。
针对目前XML应用技术现状,本文提出了利用EK)M(或SAX)技术一次性解析文档后,将XM[
文档中的层次数据提取出来通过继承Java集合类来自定义相关类并进一步处理XMI 中的数
据:
关键词:eXtensible Markup Language;Document Object Model;Simple API for XMI
中图分类号:TP 312JA;TP 312XM 文献标识码:A
Web的一个重要层面是可视化显示用户界面,如HTML和Jscript就是其现有的主要标准 由于
HTMI 是一种描述如何显示Web页的格式,这就使得它仅提供了用于显示的丰富工具,而无法提供任何
管理数据的功能。而XML及XML扩展的出现弥补了这方面的不足。
1 XM
XMI 是Extensible Markup Lanuage的英文缩写,它是一种元标注语言,该语言提供一种描述结构数
据的格式。由它产生的互用性正在启动新一代的商业和电子商务web应用程序。与现有的其它Web技
术相比较而言,它的优势在于:
1)XMI 标准简单、灵活、易用。
2)XML文件分为两种:有效的XML(带有DTD和SCHEMA的XML文档)和结构良好的XMI
对于这两种XML文件,其编码的数据都是自描述的。
3)XML能够用来分割数据与显示。将数据从显示中分隔出来,能够无缝集成众多来源的数据。
4)XMI 也能够被用来在HTML文档内部保存数据。
5)XML能够作为一种交换信息的格式,可以轻而易举地合并来自不同来源的数据。
6)XML能够被用来将数据保存到文件或数据库中。
为简单起见,以下为一个作者编写的有关学生简历的结构良好的XML文件:
<?xml version= 1.0 encoding= GB2312 standalone=”yes ?>
<students>
<student>
<name>Mary</name>
<sex>female</sex>
<age>21</age>
t
收稿日期:2002一O1—14
作者简介:周筱媛(1974一).女。湖南益阳人,硕士。主要从事数据库及电子商务方面的教学与研究
维普资讯
第3期 周筱媛用Java集合类处理XML文档 319
</student>
<student>
<name>Jhon</name>
<sex>male</sex>
<age ̄20</age>
</.student>
</students>
在上面的XML文档中,各标记表示各数据项的含义,而并不描述显示数据的次序和形式。如name
标签中,标记出了,该学生的名字。同样,从上面的文档可以看出,XML是以一树状结构来组织数据的
2 XML文档数据访问技术
XML技术的优越性使得它必将成为电子商务建设的主要工具,但由于XML技术还处在发展初期,
其应用还不普及,因此如何应用XML数据比掌握XML技术本身更具挑战性。由于XML文件只是文本
文件,它本身并不带有任何的处理数据能力,因此必须辅以其它的工具来应用它。目前,XML技术应用分
为两大类。第一类是应用XML技术描述各个行业的数据信息及进行行业内部的数据转换(XSI T);第=
类是如何处理XML中的数据。后者主要包括:
1)利用CSS(Cascading Style Sheet)来显示XML。
2)利用XSL(Extensible Style Language)来将XML转换成HTML。
3)用客户端脚本(JavaScript/VbScript)处理XML数据岛。
4)通过DOM(Document Object Mode1)处理XML数据。
5)通过SAX(Simple API f0r)(T L)处理XML数据。
前三种处理方式主要是为显示XML数据而设计的,用它们无法完成进一步数据操纵。而利用DOM
和SAX中提供的标准方法可以根据需要动态操纵XML中的数据,如提取上述XML文件中的学生姓名。
但利用DOM解析XML文件时,需要读人整个的XML文档,然后在内存中创建D0M树,当XML文档较
大时,就会要占用较多的内存。与DOM相比较而言,SAX在解析XML文档时,采用事件驱动方式,边读
入边解析。因此,它避免了DOM方法的缺陷,但对XML文档的重复操作,必须重新解析文档。
3利用Java集合类处理ⅪⅥL数据
针对目前XML应用技术现状,可以利用DoM(或SAX)技术一次性解析文档,将XML文档中的层次
数据提取出来再利用Java集合类来进一步的处理数据。在该方法中,首先根据XML文档的结构构造相
应的类,再构造容纳该类对象的自定义的集合类。这样做的优点在于:
1)将XML文档中存储的数据转化到用面向对象语言设计的程序中,借助面向对象程序设计语言的
强大数据控制能力来对数据进行进一步的处理。
2)避免了用DOM解析XML文档时,对内存的长期占用。
3)避免了用SAX解析XML文档时,反复解析的过程。
Java中提供的集合类通常用于在不同的方法间存储、操纵
和传输数据。为方便处理,除集合类之外,JDK还提供了一个操
纵所有集合对象的框架(framework),在该框架中提供和封装了
操纵大部分集合类的方法。图1为在本文中处理XML文档需
要的部分集合类的继承结构图。在图1中,虚线框代表“抽象”
类,而实线框代表普通(实际)类。点线箭头表示一个特定的类
图1 Java集合类的继承结构
准备实现一个接口(在抽象类的情况下,则是“部分”实现一个接
Fig.1 Partial inheritance structure
口)。粗箭头表示经过若干层的继承与实现。
of Java collections
维普资讯
320 西安科技学院学报 2002盎
解析指定uRL
的XML文档
成
Document
I l取出所
NodeIList
II对每一
结点生成Student对
Student
l l装入
COl】ection
图2 DOM的基本对象 图3 XML文档的处理过程
Fig.2 Basic objects in DOM Fig.3 Process of operating XML
100M是Document Object Model的缩写,即文档对象模型。前面说过,XML将数据组织为一颗树,所
以DOM就是对这颗树的一个对象描述。通过存取这些对象就能够访问XML文档的内容。
DOM的基本对象有5个:Document,Node,NodeList,Element和Attr。图2为用UML描述的它们之
间的关系图。
以上例所示的XML文档为例。首先构造一个student类,其中包含mName、mSex、mAge等私有属
性。通过DOM解析XML文档,得到文档中所有student节点的列表,遍历该列表,创建一个由student对
象组成的集合类,整个操作过程见图3。有了这个集合类之后就可以根据需要灵活操纵student数据 。
虚线框为DOM对象、点线框为用户自定义对象、实线框为Java集合对象。
4结束语
实际上,利用该方法还可以实现更多的处理。例如,实现客户订购商品的过程,在客户端利用XMI
文件组织用户选定的商品,随客户请求上传到服务器,然后统一存人数据库;再例如,可以用该方法构建
JavaBean,其中包含XML文档数据的集合类,然后在JSP中实例化该JavaBean,这样就可以在网页中充分
发挥XML的强大功能。
参考文献:
[1 Didier Martin.XML高级编程[M].北京:机械工业出版社,2000.270—284.
[2 BruceEcke1.Java编程思想[M].北京:机械工业出版社,2000.150—171.
[3]Cay S.Horstmann,Gary Comel1.Core Java 2 Volume II—Advanced Features[M].New York:Chapman and Hall,1999 91
—
96
Operate XML documents with Java collections
ZHOU Xiao-yuan
(Dept.ofComputerScience,Xi’ UniversityofScience andTechnology,Xi’ 710054,China)
Abstract:XML,as a supplement of HTML language,has a series of features such as extensibility,
simplicity,openness,interoperability,multi—lnaguage supporting and SO on,and it will be one of main tools
for the next WwW environment.However because XML is pure text file,to apply it must use other tools
.
Studying with the recent situation of XML application technology,the paper advances a new way to process
the data in XML by making use of DOM(SAX)parsing,and then construct a new CIass by inheriting
collection in Java.
Key words:XML;DOM:SAX
版权声明:本文标题:用Java集合类处理XML文档 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713544569a640023.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论