大数据,如何更快地解析一个巨大的xml文件?

时间:2016-06-11 18:09:34

标签: android xml parsing xml-parsing bigdata

我有一个巨大的圣经数据,位于xml format。我正在制作一个Android圣经应用程序。但我觉得我的数据非常庞大。

在我的研究中,我读到xml解析器解析整个文件,直到它获得所需的标记。有谁知道解析所有数据的更简单,更快捷的方法。

2 个答案:

答案 0 :(得分:1)

您应该使用SAX解析器,它是解析大型XML文件的最佳方法。例如,你可以这样做:

         File inputFile = new File("input.txt");
         SAXParserFactory factory = SAXParserFactory.newInstance();
         SAXParser saxParser = factory.newSAXParser();
         UserHandler userhandler = new UserHandler();
         saxParser.parse(inputFile, userhandler);

答案 1 :(得分:1)

当数据提取逻辑相对简单且仅向前转时,SAX解析可能是合适的...如果您希望通过遍历层次结构或XPath轻松舒适,那么您运气不好......

JDOM或DOM存在严重的内存使用问题......

VTD-XML是一个库,它跨越了SAX StAX过于复杂的用例,对DOM或JDOM来说也是内存密集型。

虽然VTD-XML将所有内容加载到内存中,但内存占用量是XML文档大小的1.3倍~1.5倍,比DOM效率高3~5倍。

它还会像游标API一样导出DOM并支持XPath 1.0 ...

Can SAX Parsers use XPath in Java?