我有一个巨大的圣经数据,位于xml format
。我正在制作一个Android圣经应用程序。但我觉得我的数据非常庞大。
在我的研究中,我读到xml解析器解析整个文件,直到它获得所需的标记。有谁知道解析所有数据的更简单,更快捷的方法。
答案 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 ...