如何使用 Java 在 Liferay 中解析一个巨大的 XML 文件?

How to parse a huge XML file in Liferay with Java?

我一直被告知,在解析巨大的 XML 文件时,应避免使用占用大量内存的 DOM 解析器,而应使用轻量级 SAX 解析器。

我想在 Liferay 中解析一个巨大的 XML 文件。该文件只是一个项目列表,我需要独立地逐一处理这些项目,因此它是 SAX 的完美用例。

我找到了 Liferay 的 SAXReaderUtil,但尽管它的名称中有 "SAX",但它看起来很像一个 DOM 解析器。它没有事件,似乎全是关于返回文档和使用 XPath 选择节点。我错了吗?

在开发 Liferay 模块时,解析巨大 XML 文件的正确方法是什么?

没有什么强迫您使用 Liferay 的 XML 实用程序。根据您提出问题的方式,我假设您在解析 xml 及其注意事项方面经验丰富。作为推论,我假设 "you're doing it in Liferay like anywhere else" 可能就足够了。

理想情况下,您决定使用的 XML parser/processor 应该作为 OSGi 包提供(或者您发现一个已经部署在 Liferay 中)。