admin 管理员组文章数量: 1184232
2024年4月19日发(作者:css文本右对齐)
维普资讯
《农业网络信息》2006年第7期 研究与开发
应用Java实现XML数据的抽取与转换
刘爽,孙忠富,杜克明,王迎春,褚佥翔
(中国农业科学院农业环境与可持续发展研究所,北京100081)
摘要:随着Interact的不断发展,关系数据库的局限性越来越明显。应用XML可以有效地存储和管理Web上以指数增长
着的数据和文档,并能够跨平台实现应用间的数据交换,是因特网上首选的数据管理与交换的技术模式。但另一方面,XML
数据在具体应用和操作时显得不大方便和不习惯,为此本文针对Field Server数据输出特点,着重介绍了如何应用Java程
序设计技术将XML文件数据导入Excel表格和普通关系数据库的具体方法,以便更适合普通用户的应用。
关键词:XML;Excel表格;关系数据库;数据交换
中图分类号:TP311.1 文献标识码:B 文章编码:1672—6251(2006)07-0023-03
X 几data extraction and transformation with Java program
LIU Shuang,SUN Zhong-fu,DU Ke-ming,WANG Ying—chun,ZHU Jin—xiang)
(Insittute of Environment and Development in Agriculture,CAAS,Bering 100081,China)
Abstract:With the development of Interact,the disadvantages of traditional relational database have been becoming more
nad more obvious.By using XML technology.data and files that are exponentially increased on Web clnl be saved and
managed effectively,in addition,data exchange is highly convenient among diferent OS platform for diferent databases,
hterefore,it has became the first technical option for web based data exchange.However,XML is not easy enough for users
to make data analysis in their practical application.In this paper,focused on the XML data from Field Server,a Java
design method Was introduced to descfibe the realization that how to transform the XML data into Excel form as well as
8ome other relational databases.in this way.more:conveniences call be provided for colnlnon users’application.
Key words:XML;Excel form;Relational database;Data exchang
1 引言
语言,则是使这场革命如虎添翼,是网络数据信息交换
在Intemet日益普及的今天,信息共享和数据交换
与管理的发展趋势。例如本课题组目前与日本中央农
日显重要,而XML作为一种信息共享与数据交换的手
业研究中心开展合作,进行远程分散条件下农田环境
段,拥有不可替代的重要性。经过几年的发展,XML已
信息获取技术研究与开发,项目中所应用的远程监测
逐渐走向成熟,并在许多系统中得到应用。
智能系统(Field Server),就是采用了XML格式的数据
XML和关系数据库在数据应用和数据管理方面各
进行远程传输与发布,并存储在数据库服务器上,可方
有优势,应是一种相辅相成、扬长避短的关系。从技术
便地被远程客户浏览访问【l1。但大量的XML文件也给
角度讲,“以数据库为存贮手段,以XML为交换载体”
用户进行数据分析处理带来了不便,而通常在实际应
的数据管理模式中,Java语言一直都被认为是最适合
用中,人们更多的是习惯于应用象Excel数据表格或者
进行XML编程的语言之一,与平台无关的语言Java加
常用的关系型数据库(如Access等)处理数据,所以如何
上与平台无关的数据XML,能够完成最为复杂、弹性最
把XML数据转化为这些常用格式的数据是需要考虑
好、复用性最强的应用系统。如果说Java为编程提供了
的问题,本文主要介绍如何应用Java实现XML数据提
一
种与平台无关的语言,从而导致了一场编程世界的
取与转换。
革命,那么XML为数据交换提供了一种与平台无关的
2相关技术简介
收稿日期:2006-03—15
基金项目:国家高技术“863”项目(2003AA209040)和国家科技基础条件平台项目(2004DEA70810-8)共同资助。
作者简介:刘爽(1982一),女,硕士研究生,研究方向:网络数据库系统设计。
孙忠富(1957一),男,博士,研究员,博士生导师,研究方向:环境控制与信息技术。
一
23—
维普资讯
<农业网络信息>20o6年第7期研究与开发
2.1 Java技术
类型的数据库如Sybase、Oracle、Informix等,只需写一
个应用程序就够了,不必为访问每个数据库专门写一
个程序。而且,使用Java编程语言编写的应用程序,也
Java是1956年6月由Sun公司引进到我们这个
世界的革命性编程语言,之所以这么说,是因为传统的
软件往往与具体的实现环境有关,一旦环境有所变化
无须去忧虑要为不同的平台编写不同的应用程序。将
就需要对程序代码进行改动,耗费大量的人力财力,而
Java编写的软件能在任何安装有Java虚拟机的机器上
运行。实现了“一次开发,到处运行 rite Once,Run
Java和JDBC结合起来将使程序员只须写一遍程序就
可让它在任何平台上运行。
Java具有健壮、安全、易于使用、易于理解和可从
网络上自动下载等特性,是编写数据库应用程序的杰
出语言。所需要的只是Java应用程序与各种不同数据
库之间进行对话的方法,而JDBC正是作为此种用途的
机制。
Anywhere)”的特色圆。
Java是目前使用最为广泛的网络编程语言之一。
它具有简单、面向对象、稳定、与平台无关、解释型、多
线程、动态等特点。Java正以前所未有的速度向Inter-
net/Intranet,甚至计算机世界的各个领域渗透,并逐渐
改变着人们程序设计的思维和理念。
2.2 XML技术
XML是英文“eXtensible Markup Language”缩写。
MIS管理员们都喜欢Java和JDBC的结合,因为它
使信息传播变得容易和经济。企业可继续使用它们安
装好的数据库,并能便捷地存取信息,即使这些信息是
储存在不同数据库管理系统上。另外新程序的开发期
很短,安装和版本控制将大为简化。程序员可只编写一
遍应用程序或只更新一次,然后将它放到服务器上,随
后任何人就都可得到最新版本的应用程序。
其中文含义是“可扩展标记语言”,是互联网联合组织
(w3c)为便于软件开发人员和内容创作者在网页上组
织信息而创建的一组规范,其目的不仅在于满足不断
增长的网络应用需求,更是为了确保在通过网络进行
交互合作时,具有良好的可靠性和互操作性口1。
相对于数据库技术,XML技术在数据应用方面具
有很多优点。第一,跨平台。XML文件为纯文本文件,不
受操作系统、软件平台的限制。第二,方便语义的表达。
XML具有基于Schema自描述语义的功能,容易描述数
据的语义.这种描述能为计算机理解和自动处理。第
三.XML不仅可以描述结构化数据,还可以有效描述半
结构化,甚至非结构化数据。
XML语言可以让信息提供者根据需要自行定义标
记及属性名,也可以包含描述法,从而使XML文件的
3 XML数据的抽取与转换的具体实现
3.1应用Access桌面数据库转换功能
若用户只有某个XML数据文件需要转化,可以使
用Microsoft Ogice Excel 2003直接打开该文件,在打
开的过程中根据实际需要选择样式表即可;也可以使
用Microsoft Ogice Access 2003的数据导人功能,将
XML的数据文件存储在Access数据库中.具体操作如
下:
(1)打开Microsotf Office Access 2003;
(2)单击菜单栏上的帮助,选择示例数据库的罗斯
文示例数据库;
(3)单击菜单栏上的文件,选择获取外部数据的导
入:
结构可以复杂到任意程度。XML语言主要包含三个要
素:Schema(模式)、XSL(eXtensible Stylesheet Language,
可扩展样式语言)和XLL(eXtensible Link Language,可
扩展链接语言)。其中Schema规定了XML文件的逻辑
结构,定义了XML文件中的元素,元素的属性以及元
素和元素的属性之间的关系;XSL是用于规定XML文
(4)输入导入文件的具体位置,单击导人即可,就
可以在罗斯文数据库中找到导入后的Access数据表。
档样式的语言;XLL将进一步扩展目前Web上已有的
简单链接。
2.3 JDBC技术
JDBC是一种用于执行SQL语句的Java API。它由
一
对处理少数XML文件,上述方法非常有效,但用
户若有大量的XML文件需要转换,显然以上操作是很
不方便的。因此本研究的主要目的是将用户已有的大
量的XML数据文件一次性转化为Excel表格并导入
Access数据库或其它类型数据库,以方便用户进一步
处理数据、提高工作效率。
3.2应用Java程序实现XML数据的转换
该应用程序采用开发工具eclipse和面向对象语言
Java完成全部开发,该程序只能在安装了Java虚拟机
的计算机上运行。用户操作流程可分为以下三个步骤:
组用Java编程语言编写的类和接口组成。JDBC为工
具/数据库开发人员提供了一个标准的API,使他们能
够用纯Java API来编写数据库应用程序 。
有了JDBC,向各种关系数据库发送SQL语句就是
一
件很容易的事。换言之,有了JDBC API,要访问不同
一
24—
维普资讯
《农业网络信息)2oo6年第7期研究与开发
(1)打开命令提示符,输入含有XMLData.class和
ExtensionFileFilter.class文件的路径:
BufferedReader in=new BufferedReader(new Input—
StreamReader(System.in));
ny{
(2)在命令提示符中输入以下指令:java XMLDa-
ta;
path=in.readLine0;
(3)输入要解析的XML数据文件的路径,按回车
}catch(IOException e)
{
键,即可在该路径下发现新生成的Excel数据表格。
整个程序的执行流程见图1。
System.out.prinfln(e);
)
File file=new File(path);
l 一 ^藕_横 静瓣一鬻
File[]files--ifle.i1stFiles(new ExtensionFileFilter(”xml”));
for(int i=O;i<files.1ength;i++){
iflename=files[i].toString0;
l
(2)XML文件的解析与写入Excel表格。
public class XMLData extends DefauhHandler{
41,
瓣一蝌舞唧静赣一鬻弹专 ・藕赣 il
专
I
-_皤_ 舡
I -饕 t|尊_l 辩
,
java.util.Stack tags=new java.util.Stack0;
public void startElement(String po,String pl,
喜、
String p2,Attributes p3)throws SAXException{
tags.push(p2);
}
public void endElement(String po,String pl,
图1 写入Excel的程序流程图
若用户需要将解析出来的数据存人数据库。只需
要给程序中加入用JDBC连接数据库和写入数据库的
代码即可,程序的执行流程如图2。
String p2)throws SAXException{
tags.pop0;
if(p2.equals(”Object”))writel0;
糠 囊 瓣 ●■鞠 镌 l
l
I 鹭躺蝴 -糍奠蓐・ 哮
—
I簟薹羞 糠麟 曩
public void characters(char口p0,int p1,int p2)
throws SAXException{
String tag=(String)tags.peek0;
if g.equals(”Param_Xml”))Param_Xml=new
■ 嘲嚏穆
麓缫瓣 瓣 I
String(p0,pl,p2);
else if(tag.equals(”Name”))Name=new String
(pO,pl,p2);
I 一 { t ■目一■“■口■■ 1
. ,
l
public void writel0
图2写入数据库的程序执行流程
{
File f=new File(iflename+”object.CSV”);
try{
3.3程序设计关键技术说明
(1)自动寻找要解析的一个XML文件.其中files
数组存放一个文件夹下所有的XML数据文件。由for
循环来依次找到每个XML文件,并将文件名赋给file—
nallle,然后进行解析。
FileWriter out=new FileWriter(f);
out.write(”Param_Xml,"+Param_Xm1);
out.write(13);
out.write(”Name,"+Name);
out.write(13);
(下转第28页)
public static void main(String[]aI ){
String path=null;
System.out. ntlIl(”请输入文件路径”);
一
25一
维普资讯
《农业网络信息》2006年第7期 农业信息化
财政局、市科特办、市农业局、市林业局、市畜牧水产
局、市农科所、南平农校、市气象局、市供销社、市科协
等单位领导组成。领导小组负责对闽北农村科技信息
化建设进行统筹组织、协调和管理。领导小组下设办公
息化建设的重要环节。各级信息中心确定专人负责信
息工作,充分发挥科技特派员和村级农民技术员的作
用,多渠道组织信息员,不断更新和利用网上信息。充
分利用远程农技服务平台和远程视频科技培训系统.
指导当地农业生产,开展农村科技培训。
3.4加大资金投入
室,负责牵头制定总体实施方案、管理办法和培训计
划,以及日常管理工作。
3.2抓好示范带动
通过农村科技信息化示范,带动整个支撑体系建
设。根据闽北现状,全市抓2个示范县(市、区)、14个示
范乡镇、3O家示范农产品加工企业和360名示范农户。
在示范县(市、区)、乡镇、农产品加工企业和农户建设
的基础上,逐步向其余各县(市、区)、乡镇、农产品加工
企业和农户进行推广。
3.3突出开发应用
农业相关信息的合理开发与应用,是农村科技信
积极拓宽经费来源渠道。各级财政、科技、农业等
部门每年切出一定的专项经费用于农村科技信息化建
设。同时,加大部门资金集成力度,积极引导社会力量
投入经费参与农村信息化建设。
3.5建立激励机制
闽北农村科技信息化建设领导小组按照总体实施
方案和各级信息机构职能要求,每年对各单位和个人
开展农村科技信息化建设情况进行分层次考评,对成
绩突出的单位和个人进行表彰和奖励。
(上接第25页)
使用,充分发挥它们各自的优势。
由于采用面向对象的编程思想进行程序设计.大
大增强了程序的通用性和代码的重用性,提高了开发
效率。比如当前的程序代码能实现将转换数据写入
1
catch(Exception e)
{
System.out.println(e.getMessage0);
l
l
Access数据库,若要写入SQL Server、Oracle等其他数
据库,只需改写连接数据库部分的数据库驱动程序.而
其它代码均能够重复使用。另外,由于Java本身的跨平
台性,所以该程序可以在安装了Java虚拟机的任何系
统下运行。
另外,该程序也存在一些不足。例如:目前还没有
catch(Exception e)
{
System.out.println(e.getMessage0);
l
l
图形用户界面,所以人机对话功能较差;其次,该程序
是针对处理Field Server所采集的XML数据文件编写
的,若处理其他XML数据文件还需稍加改动.其通用
4结果与讨论
由XML数据特点可知,它非常适合管理复杂的数
据结构的数据集,尤其是采用XML数据将大大方便文
档的存储和检索。XML数据库可以用方便实用的方式
性仍需增强。这些缺陷会在后续版本中不断加以改进.
使之完善。
参考文献
【I】Fukatsu T,M.Hirafuji.Field Monitoring Using Sensor—Nodes
with a Web Server.Journal of Robotics and Mechatronics。
检索文档,并能够提供高质量的全文搜索引擎,它特别
适合对半结构化数据的管理。另外XML数据库能够存
储和查询异种文档结构,提供对异种信息存取的支持。
2005。17(2):164--172.
虽然XML数据库具有了传统数据库所具有的特
点,但XML数据库在有效的存储组织、合理的索引结
【2]张孝祥Java就业培训教程嗍.北京:清华大学出版社,2003.
【3】Elliotte,Rusty,Harold著.刘文红,赵伟明,等译Java语言与
XML处理教程嗍.北京:电子工业出版社,2003.
[4]Art,Taylor著.李东升,等译JDBC数据库编程与J2EE嗍.北
京:电子工业出版社.2004.
构、数据库系统的安全性、事务处理、数据完整性、触发
器、多用户处理机、数据的聚合能力等方面还有待提
高。所以我们应该将XML数据库和关系型数据库结合
一
28—
版权声明:本文标题:应用Java实现XML数据的抽取与转换 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713539981a639790.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论