Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 大数据,如何更快地解析一个巨大的xml文件?_Android_Xml_Parsing_Xml Parsing_Bigdata - Fatal编程技术网

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

Android 大数据,如何更快地解析一个巨大的xml文件?,android,xml,parsing,xml-parsing,bigdata,Android,Xml,Parsing,Xml Parsing,Bigdata,我有大量的圣经数据,是xml格式的。我正在制作一个android圣经应用程序。但我觉得我的数据非常庞大 在我的研究中,我读到xml解析器解析整个文件,直到它得到所需的标记。有人知道一种更简单、更快的方法来解析所有数据吗 您应该使用SAX解析器,这是解析大型XML文件的最佳方法。例如,您可以执行以下操作: File inputFile = new File("input.txt"); SAXParserFactory factory = SAXParserFac

我有大量的圣经数据,是
xml格式的。我正在制作一个android圣经应用程序。但我觉得我的数据非常庞大


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

您应该使用SAX解析器,这是解析大型XML文件的最佳方法。例如,您可以执行以下操作:

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

当数据提取逻辑相对简单且仅向前时,SAX解析可能是合适的。。。如果您想轻松自如地遍历层次结构或XPath,那么您就不走运了

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

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

当VTD-XML加载内存中的所有内容时,内存占用是XML文档大小的1.3~1.5倍,比DOM效率高3~5倍

它还导出一个类似DOM的游标API,并支持XPath1.0


将其分块解析?例如,如果您必须预订标签,请跳过其他标签,然后从那里解析?@SQLiteNoob感谢您的快速回复。你能告诉我使用哪种方法吗?我认为关键问题是:你想对数据做什么?解析只是达到目的的一种手段。