论文网首页|会计论文|管理论文|计算机论文|医药学|经济学论文|法学论文|社会学论文|文学论文|教育论文|理学论文|工学论文|艺术论文|哲学论文|文化论文|外语论文|论文格式
中国论文网

用户注册

设为首页

您现在的位置: 论文大全网 >> 计算机论文 >> 计算机应用论文 >> 正文 会员中心
 计算机应用论文   计算机理论论文   计算机网络论文   电子商务论文   软件工程论文   操作系统论文   通信技术论文
基于JDOM的XML数据解析技术内涵研究
摘 要:jdom是xml文件的一种java表示,它提供了一种表示文件的方法,可以方便有效地阅读、操作和书写文件,并致力于用 20%的精力来解决80%的问题。jdom有一个简单明了的api,既轻量又快速,它集成了dom和sax的优点,将两种技术整合到一起,使两者的配合更加自然和协调。本文着重论述jdom的技术内涵、解析原理,给出了jdom解析xml文件的关键代码,为xml的相关开发设计人员提供了一种更好的参考依据。关键词:jdom; dom; sax; xml; java
  中图分类号:tn011-34; tp312 文献标识码:a
  文章编号:1004-373x(2010)22-0040-02
  
  xml data analysis technique based on jdom
  liu yu-xiao1, yang ya-juan2
  (1. xiangfan university, xiangfan 441001, china; 2. northwest civil aviation air traffic management bureau, xi’an 710082, china)
  abstract: jdom is a kind of java in xml document, which provided a way to express document in order to read,operate and write conveniently. jdom has a simple api, which is slight and fast. api collected the merits of dom and sax so that both can work in a coordinate and natural way. the technical and the analysis principle of jdom, and the key code about xml document are analyzed. a better reference is provided for the xml related development designers.keywords:jdom; dom; sax; xml; java
  
  0 引 言
  jdom是一个开源项目,它基于树型结构,利用纯java技术对xml文档实现解析、生成、序列化以及多种操作。jdom 直接为java编程服务,它利用更为强有力的java语言的诸多特性(方法重载、集合概念以及映射),把sax和dom的功能有效地结合起来[1],在使用设计上尽可能地隐藏原来使用xml过程中的复杂性。利用jdom处理xml文档将是一件轻松、简单的事。
  1 jdom的解析原理
  jdom自身并没有xml解析器,其解析xml文件时,通过sax解析器读取事件流,根据这些事件来建立jdom树[2]。同时,可以对解析器设置各种属性,包括errorhandler,dtdhandler,entityresolver和基础sax xmlreader支持的任何自定义特性和属性。与dom不同的是,树中所有不同类型的节点都表示为具体类,而不表示为接口[3]。
  jdom没有专门导航xml树型结构的方法,其导航树型结构通过element类的getchildren()方法[4]。这种方法返回一个元素列表,包括一个元素的所有内容(说明、处理指令、文本接点和元素内容)[5]。要进行深度搜索,就要对当前元素的子元素应用getchildren()方法。
  jdom把不同的节点类型表示为10个具体类[6]。使用jdom可以很方便地生成一个xml文件,相比dom来说,其代码可以得到很大的简化[7]。但是,在导航xml树型结构时,又比dom复杂得多[8]。jdom处理xml文件的流程见图1。
  图1 jdom处理xml流程
  jdom解析xml文件的时序图见图2。
  图2 jdom解析xml文件时序图
  2 jdom解析xml文件的关键代码
  jdom解析xml文件的关键代码如下:
  import java.io.*;
  import java.util.*;
  import org.jdom.*;
  import org.jdom.input.*;
  public class jdomreader {
  public static void main(string args[ ]) {
  try {
   saxbuilder builder = new saxbuilder();
  document doc = builder.build(new file("xxx.xml"));
  element foo = doc.getrootelement();
  list allchildren = foo.getchildren();
  for(int i=0;i  sytem.out.println(((element)allchildren.get(i)).
  getchild().getattribute());
  sytem.out.println(((element)allchildren.get(i)).
  getchild().gettext());
  }
  }
  catch (exception e) {
  e.printstacktrace();
  }
  }
  }

3 结 语
  jdom与dom主要有两方面不同。首先,jdom仅使用具体类而不使用接口,这在某些方面简化了api,但是也限制了灵活性;其次,api大量使用了collections类,简化了那些已经熟悉这些类的java开发者的使用[9]。
   编辑整理
  参考文献
  [1]哈罗德.java 语言与xml处理教程:sax,dom,jdom,jaxp与trax指南[m].北京:电子工业出版社,2003.
  [2]w3c. w3c document object model (dom)[r/ol].[2005-11-07].http://xml.coverpages.org/dom.html.
  [3]jdom. jdom v1.0 api specification[r/ol].[2005-06-17]./docs/apidocs/.
  [4]saxproject. sax 2.0 extensions[r/ol].[2005-06-07]./about.html.
  [5]biggs wes, evans harry. simplify xml programming with jdom[j/ol].[2005-06-18]./ developerworks/library/j-jdom/index.htm.
  [6]hunter jason. jdom and xml parsing[j/ol]. part 1.[2005-06-23]./technology/oramag/oracle/ 02-sep/o52jdom.html.
  [7]mertz david. xml matters: the xom java xml api[j/ol].[2005-07-01]./developerworks/ library/ x-matters32.html.
  [8]dom4j. xml api for java comparison[eb/ol].[2005-07-07]./compare.html.
  [9]sosnoski dennis m. java中的xml: 文档模型,第一部分:性能[j/ol]. [2005-07-09]./ developerworks/cn/xml/x-injava.
  • 上一个计算机论文:
  • 下一个计算机论文:
  •  更新时间:
    一种基于霍尔传感器的车辆行程及速度测量系
    基于高斯变异的自适应猴群算法
    基于Java RMI的分布式数据库系统开发与应用
    基于AES加解密系统的设计与实现
    基于安卓的掌上校园客户端设计初探
    基于Asterisk的呼叫中心弹屏模块设计与实现
    基于PLC井下主排水泵综合自动化控制的研究
    基于WSN—T的车位管理原型系统探究
    基于频段局部能量特征方法的接地网故障诊断
    基于CATIA飞机三通导管零件的逆向建模
    基于Windows构架网络数据包拦截技术的个人防
    基于MIDAS的大体积混凝土水管冷却仿真分析
    | 设为首页 | 加入收藏 | 联系我们 | 网站地图 | 手机版 | 论文发表

    版权所有 www.11665.com © 论文大全网 All rights reserved