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 


本文标签: 数据 文档 处理 集合