我有大容量2GB到4 GB的大XML文件,我通过第三个pasrty供应商获得。现在我需要做两种类型的操作 对于不同的用例: -
用例1: -
验证XML中的一些值。
用例2: -
将XML编译为java对象以进行某些处理。
现在我的问题是最好的做法。我可以验证特定元素而无需解析Usecase 1。
第二个问题是如何在没有获得OutOfMemory
异常或最佳利用内存2的情况下编组这样大的文件?
答案 0 :(得分:1)
如果文档太大,您将需要手动使用基于事件的解析器,如SAX和马歇尔对象。这将允许您将文档作为流处理,而不是一次读取整个文档。
这是一篇简短的文章,讨论基于事件的解析与基于树的解析: