1、大型XML的解析
解析Xml的方法包括如下几种:
1)、DOM4J
2)、JDOM
3)、DOM
4)、SAX
5)、自己编写适合的解析器
DOM4J,JDOM,DOM解析:
优点:容易使用,容易上手,对数据的处理简单
缺点:不能用于解析大型的XML
分析:由于这三种解析器实现的方法都是要把整个XML文件加载到系统中,顾这容易使得出现内存溢出的现象。所以这样解析的方法占用很大的内存,在解析大型的XML数据中不建议使用
SAX解析优点:容易使用,容易上手,能解析大型的XML文件
缺点:数据的处理比较麻烦
分析:SAX解析是通过加载文件的一部分进行解析,而不是把整个文件加载到内存中,占用内存少,顾它可用于解析大型的XML。也是解析大型的XML中常用的解析器。
自己编写适合的解析器优点:不需要对数据进行处理
缺点:实现齐全的功能较难
分析:这种方法是更觉XML文档的结构进行解析,需要对XML文档的结构有一定的了解,通过IO流将XML的文档内容以字符形式读入内存,在更觉字符的类型进行判断XML的内容
2、XML数据转换到数据库数据由于在将XML文件中的数据信息添加到数据库中,需要执行很多次的insert操作,顾需要进行很多次的数据库的访问,访问数据库也得需要占用程序的时间,在解析大型XML数据时,就要对数据库进行非常多的访问,一般大型的XML文件至少要进行100W次的insert操作。
那么怎样减少在将数据插入数据库的时候占用更少的时间呢?
通过交流发现在java里面对数据库的操作有批处理的方法,于是可以将本来要向数据库提交很多次的操作,将它们添加到批处理的队列中,在解析玩XML文件后再进行一次性的提交,这样就减少了多次提交信息到数据库而造成访问数据库的时间。
这种批处理的方法也是在实际操作中经常用到的。