【发布时间】:2012-09-06 18:59:13
【问题描述】:
由于要处理的文件的大小(50-100MB xml 文件),这可能超出了 Java VM 的能力
现在我有一组以 zip 格式发送的 xml 文件,这些文件依次全部解压缩,然后使用 SAX 一次处理一个目录中的所有 XML。
为了节省时间和空间(因为压缩大约是 1:10),我想知道是否有办法将 ZipFileEntry(一个 xml 文件)传递给 SAX 处理程序。
我已经看到它使用 DocumentBuilder 和其他 xml 解析方法完成,但为了性能(尤其是内存)我坚持使用 SAX。
目前我正在通过以下方式使用 SAX
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
MyHandler handler = new MyHandler();
for( String curFile : xmlFiles )
{
System.out.println( "\n\n\t>>>>> open " + curFile + " <<<<<\n");
saxParser.parse( "file://" + new File( dirToProcess + curFile ).getAbsolutePath(), handler );
}
【问题讨论】:
标签: java xml-parsing zip saxparser