我们有非常大的xml文件(5-10MB),其中包含大量数据,我们需要在java中开发POC来解析它,并通过维护正确的版本将它们插入到db表中。
有谁能告诉我这个设计的最佳做法是什么?我们怎样才能以更有效的记忆方式解析它们?
答案 0 :(得分:2)
在Java中解析XML有三种主要方法。
DOM - 将整个文件读入内存并随身携带。
PUSH - 例如SAX - 解析文件并使用回调来告诉你当文件飞过paqst解析器时发生了什么。
拉 - 例如StAX - 即时解析文件,但逐个从文件中提取每个元素。
有关更一般性的讨论,请参阅Parsing XML using DOM, SAX and StAX Parser in Java。
有关推/拉辩论的详细讨论,请参阅What is 'Push Approach' and 'Pull Approach' to parsing?。 对于大型文件,DOM将无法正常工作。对于速度,其他两个都可以正常工作。