如何提取XML块?

时间:2019-02-02 16:42:50

标签: java xml

我已经大XML,其大小可从1.5 GB变化到1.5 GB +。其次,我有一个处理该XML的实用程序。但是在整个XML中,只有少数内部标签负责从该实用程序生成输出。

这里值得关注的是,如果它是一个小的xml,它会被处理,但是在BIG xml中,我会得到一个错误的Java堆空间。

我知道XML的整个模式和内部标记的顺序,以及真正习惯于产生输出的人。因此,我正在考虑仅从整个XML中提取所需的XML,并仅使用外部标签而不使用带有Data的标签来完成所需的XML。我已经使用小数据对其进行了测试,但是不确定如何从Big FAT XML中删除这些块。

总不想增加JVM参数。

有什么办法,我可以做到这一点,给那些小XML块效用? 谁能分享他们的观点?

谢谢

1 个答案:

答案 0 :(得分:0)

我怀疑XSLT处理器是否可以帮助您避免大型XML文件出现问题。相反,我建议您使用分层API,例如StAX,该API旨在在解析每个XML标记后立即对其进行处理。

查看StreamFilter示例。