Topic: 如何解析超大xml 文档

  Print this page

1.如何解析超大xml 文档 Copy to clipboard
Posted by: ydaniel
Posted on: 2003-08-01 15:47

这里有一个900M的xml doc
jdom能做吗?报内存溢出的错误
除了sax,还有什么可以做?

2.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: dapan
Posted on: 2003-08-01 17:55

这么大?

直接用流处理吧。

^_^

3.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: wishmaster
Posted on: 2003-08-02 01:26

ydaniel wrote:
这里有一个900M的xml doc
jdom能做吗?报内存溢出的错误
除了sax,还有什么可以做?


If it is that big, can you do it in staging table and generate xml out of the database?

4.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: qilong2000
Posted on: 2003-08-06 11:27

jdom好像也是用sax的方式解析的啊

5.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: hi_liuyang
Posted on: 2003-08-08 16:43

期待答案

6.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: jameszhang
Posted on: 2003-08-20 10:55

看起来象是解决数据库存取的问题

7.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: agilechen
Posted on: 2003-09-04 09:20

我想是用SAX了。至少不会有out of memory.

8.sax就是干这活的啊 [Re: agilechen] Copy to clipboard
Posted by: liuzhehz
Posted on: 2003-09-04 10:12

你还想用什么

9.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: hitaco
Posted on: 2003-10-02 22:58

受不了,这么大的数据,干吗用xml呀

10.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: kingwzb
Posted on: 2003-10-13 17:13

像基因数据,网络数据挖掘等,我们学校里就找得到这种大的XML文件。

11.Re:如何解析超大xml 文档 [Re: kingwzb] Copy to clipboard
Posted by: helloworld
Posted on: 2003-10-13 17:16

是啊,一个是解析超大XML,另一个是查询返回超大的结果集问题,

是否有什么好的方案,让人信服的方案.

12.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: coloumn
Posted on: 2003-10-20 15:37

你解析这么大的xml文件目标是什么??如果仅仅是抽取里面固定格式、没有层次的数据,建议就用流的方式进行(自己写个扫描算法)。

我很奇怪这么大的数据量,为什么不用关系数据库保存。要做大批量数据分析,关系数据库可比xml强多了。(除非你研究基于xml的数据库)

如果xml文件的层次很重要,你又觉得sax不行,就自己做解析。如果你能够找到比sax更好的方法,我要向你学习Smile

最终,如果返回超大的结果集,建议你把结果集写到文件里,并且自己做索引(呵呵,实现关系数据库最基本的功能)或者把结果写到数据库里。

13.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: jfml
Posted on: 2003-11-11 14:06

存在一个900M的XML本身就是失败!

14.Re:如何解析超大xml 文档 [Re: CrazyJavar] Copy to clipboard
Posted by: wishmaster
Posted on: 2003-11-11 16:52

CrazyJavar wrote:
存在一个900M的XML本身就是失败!


he is looking for a solution - in real world, it exists...

most likely, this xml file has lots of repetitive elements and try to break it into more managable pieces...and then manipulate these smaller pieces...

15.Re:如何解析超大xml 文档 [Re: coloumn] Copy to clipboard
Posted by: luoq_dl
Posted on: 2003-11-11 17:05

好像SAX就是干这个的,至今没有见到更好的方法,如果有好的方法,真想见识一二

16.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: jfml
Posted on: 2003-11-11 17:16

不管是什么技术,要从一个近1G的文件中读取所有信息恐怕都不是轻松的事情吧

17.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: bawanglongqiqi
Posted on: 2003-11-13 20:25

jaxb行不行啊?

18.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: zerol
Posted on: 2003-11-14 18:51

现实中什么问题都有的

19.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: summer1433
Posted on: 2003-11-25 13:51

可以自己做一个读取的工具,因为你这个文档的格式是知道的
所以没有必要用xml的一些解析工具再去解析它的格式等信息了

我的想法:
先做一个你的文档的模型,然后根据这个模型去取值.
读取过的删除掉
比如:
<root>
<title>mymap</title>
<body>
<point>
<x>1.0</x>
<y>2.0</y>
</point>
<point>
<x>1.3</x>
<y>2.1</y>
</point>
...........
</body>
</root>
其实现方法当然用文件流的形式,这么大的数据你要取出来做什么用途呢?
存到数据库?如果是要做显示的话...也不太难,但是不能够一次读出来,要分段读,假如上面的xml文档是个map的信息,当然点是很多很多的,还有什么颜色信息等等,如果没有什么排序的要求的话,完全可以从第一行root读起,因为知道文档的格式,所以没有必要去解吸了,直接去取

Smile 这是我的想法.我觉得没有必要用xml去解析了,因为xml说白了就是一个规范的格式,生成的时候需要规范,取出来的时候按照定好的规范就可以了

20.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: lixj0571
Posted on: 2003-12-03 09:13

为什么不把这么大的XML文件分解为几个小的XML文件,再依次读取解析呢?
搞不懂!!

21.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: whoami13
Posted on: 2003-12-03 11:07

看看stAX行不行

22.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: xjeren
Posted on: 2003-12-06 18:54

如果是一个20M的xml doc ,jdom能做吗?
我曾经在用axis处理1M的xml doc ,报内存溢出的错误,通过修改jvm heap size,解决了这个问题,没有试更大的处理

23.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: xjeren
Posted on: 2003-12-06 18:55

如果是一个20M的xml doc ,jdom是不是处理时间很长?我在处理1M的数据时,系统消耗就大了

24.Re:如何解析超大xml 文档 [Re: luoq_dl] Copy to clipboard
Posted by: whisperwind
Posted on: 2004-02-11 15:18

这个问题我也碰到,不过不是xml文件,而是两个系统之间通信的数据格式用xml封装,并且数据量很大。感觉传用xml封装大量数据最麻烦的是难以检验xml数据的格式是否完整

25.Re:如何解析超大xml 文档 [Re: ydaniel] Copy to clipboard
Posted by: guru
Posted on: 2004-02-13 03:33

这么大的文件使用runtime的方式来建立解析的。解决这个问题我觉得可以采用Exist这样的XML数据库。此外,将你的文档加以分解,将类似于BLOB这样的信息保存为一个独立的文件也能有效地降低XML文件的大小。

Exist的网址:

http://sourceforge.net/projects/exist/


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923