dom4j解析xml格式文件实例

如下给4种常见的xml文件的解析方式的分析对比:

DOM  DOM4J  JDOM  SAX

Dom解析    在内存中建立一个DOM树,该结构一般须要加载整个文档而后才能作工做。因为它是基于信息层次的,于是DOM被认为是基于树或基于对象的,树在内存中是持久的,所以能够修改它以便应用程序能对数据和结构做出更改能随机访问文件内容,也能够修改原文件内容.html


SAX解析    SAX处理的优势很是相似于流媒体的优势。分析可以当即开始,而不是等待全部的数据被处理。SAX解析器采用了基于事件的模型,它在解析XML文档的时候能够触发一系列的事件,当发现给定的tag的时候,它能够激活一个回调方法,告诉该方法制定的标签已经找到。并且,因为应用程序只是在读取数据时检查数据,所以不须要将数据存储在内存中。这对于大型文档来讲是个巨大的优势线性解析,不能随机访问,也没法修改原文件dom

 

JDOM解析   JDOM的目的是成为Java特定文档模型,它简化与XML的交互而且比使用DOM实现更快.JDOM仅使用具体类而不使用接口。这在某些方面简化了API,可是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。性能

 DOM4j解析  DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的Collections类,可是在许多状况下,它还提供一些替代方法以容许更好的性能或更直接的编码方法。直接好处是,虽然DOM4J付出了更复杂的API的代价,可是它提供了比JDOM大得多的灵活性。测试

 

最后相比之下选择了dom4j对其经行解析。编码

 

下面是xml文件的一部分:spa

考虑到上面的复杂因素,从面向对象出发,我定义了如下三个实体类对象:3d

每一个对象的定义都比较简单:ResultSet.class,RowDetail.class,RowMaster.class的定义分别以下:xml

 

其中用到的最为关键的技术固然是xpath表达式的书写了,详情请参考:http://www.cnblogs.com/fdszlzl/archive/2009/06/02/1494836.html,下面我就直接给出个人解析代码:htm

如下是测试查看List<ResultSet> resuList中部分数据的输出:对象

相关文章
相关标签/搜索