java解析超大xml并插入数据库 本帖最后由 wo401554998 于 2013-08-24 19:06:05 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 也是毕业生,还在失业中,xml解析你可以试试使用DOM来解析,或者SAX。DOM在解析的时候会把整个XML文档全部映射为Document里的树状结构,对于小文件很方便,但是文档很大时,对内存占用较大、速度较慢。SAX解析器从XML文档开始位置进行解析,同时根据定义好的事件处理器,决定当前所解析的部分是否记录、存储,这个的运用我也不熟悉。还有就是使用JAXB,把xml与Java类映射来解析数据。我也是菜鸟,共同学习,不知道对楼主有没有帮助,不对之处勿喷。 回复一楼 当然是没有的了 二楼 sax是流处理可是她过于低端,处理是有点慢的 和sax相同解析模式的是stax 你感兴趣的话可以看下 我在一块用的dom4j 你这个工作量太大了。(2)字段比我解析出来的字段少,这就麻烦了,我如何插入数据库呢?这个问题主动去和老板沟通,程序员的技能不光仅仅在于编码!这个xml解析我考虑jaxb,但是由于我也不太熟悉,还有最近很忙,估计按jaxb很慢才能实现出来。实在不行就 io + 正则解析。 具体相关博客你可以自己搜搜http://blog.csdn.net/axman/article/details/420910 嗯谢谢的回复,正则我去看看吧我去 可别正则解析 jom4j就OK了 沟通一下字段插入就完了 你搜一下解析XML的插件吧,dom4j,sax什么的。要把XML看成一棵树再解析。 用dom解析是肯定不行的,可以尝试sax方式。如果不行就把java的运行内存调到最大,这样也出现oom的话就把文件分割,分割成更小的单位,让内存容得下,是在不行就楼上说的IO方式。 不可以把你解析出来的数据先放在一个Map里面,再根据Key值插入到对应的列吗 jaxb解析还是可以的,映射下就好的 我的第一个任务也是解析xml并导入数据库,64M的文件,不过就两列,嘿嘿 (1)数据库表中字段比我解析的字段多,有些字段我这个xml没有,这好说,不插入就行了, (2)数据库字段比我解析出来的字段少 这2个我不是很明白,,, ex: 数据库 字段 有 name sex age 你解析的xml字段有 name address phone 那你就只insert一个name就行了,难度你还管 address 和 phone 么? 有没有类似于CSDN的外文IT社区网站? socket问题。。。。请教。。 java gmail email发送不成功 saveorUpate()执行时报错, 请教!!!!!!! NetBeans下使用EL表达式出错 spring注入struts2的问题 求助:找不到jndi,高手救命 [请教]初学J2EE,应看哪些书? jndi教程(基础到提高) ifram弹出层相关问题 关于servlet中response的sethead和addhead 大神帮忙看下这段代码
这个问题主动去和老板沟通,程序员的技能不光仅仅在于编码!这个xml解析我考虑jaxb,但是由于我也不太熟悉,还有最近很忙,
估计按jaxb很慢才能实现出来。实在不行就 io + 正则解析。
要把XML看成一棵树再解析。
如果不行就把java的运行内存调到最大,这样也出现oom的话就把文件分割,分割成更小的单位,
让内存容得下,
是在不行就楼上说的IO方式。
(2)数据库字段比我解析出来的字段少 这2个我不是很明白,,, ex: 数据库 字段 有 name sex age
你解析的xml字段有 name address phone 那你就只insert一个name就行了,难度你还管 address 和 phone 么?