假设我有一个非常大的XML文件要解组,比如2 MB。我不想解组该文件,最终得到(aprox。)内存中2 MB的对象。
相反,我希望按需解组部分文件(即,当我浏览对象结构时)并清理我已经读过的对象的引用,使它们可用于垃圾收集器。
是否有可能以某种方式调整JAXB实现,而不是完全一次解组XML?
答案 0 :(得分:1)
看一下这个解决方案:Partial Unmarshalling of an XML using JAXB to skip some xmlElement
创建了一个专家类,以提供一种读取部分xml的机制。
答案 1 :(得分:1)
可以找到一个综合示例here。
它使用StAX前进到xml文件中的正确位置,使用JAXB来解组域对象。