[英]How to read a big XML file in JAVA and Spilt it into small XML files Based on Tag?
[英]Efficient way to read a small part of a BIG XML file in Java
我们有一个新要求:
有一些BIG xml文件不断进入我们的系统,我们需要使用Java立即快速处理它们。 该文件很大,但我们处理所需的信息是在一个非常小的元素内。 ......
在开始处理之前从大文件中提取这一小部分数据的最佳方法是什么。 如果我们尝试加载整个文件,由于大小,我们会立即出现内存不足错误。 什么是Java的有效方式,我可以使用它来获取..data..data..data ..数据元素,而无需逐行加载或读取文件。 我可以使用SAX Parser来完成这项工作吗?
谢谢
SAX解析器是基于事件的,速度更快,因为它们可以满足您的需求:它们不会完全读取xml文档。 Java发行版中提供了SAXParser
。
我不得不在之前的项目(1G-2G)中解析大量文件,并且不想处理使用SAX。 我发现在某些情况下SAX太低级了,并且在大多数情况下保留了遍历方法。
我使用了VTD库http://vtd-xml.sourceforge.net/ 。 它是一个极其快速的库,它使用指针来浏览文档。
StAX是基于漫游数据的另一种选择,如SAX,但是通过“拉动”您想要的而不是“推送”给您来处理数据的更友好的方法(IMO)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.