我想迭代一个 XML 文档,该文档本质上是一个结构相同的 XML 元素的列表。这些元素将被序列化为 Java 对象。
<root>
<element attribute="value" />
<element attribute="value" />
<element attribute="value" />
...
</root>
Run Code Online (Sandbox Code Playgroud)
根元素中有很多元素。我不想将它们全部加载到内存中。我意识到我可以为此使用 SAX 处理程序,但使用 SAX 处理程序将所有内容反序列化为 Java 对象似乎相当迟钝。我发现 JDOM 非常容易使用,但据我所知,JDOM 总是解析整个树。有没有一种方法可以使用 JDOM 一次解析一个子元素?
使用 JDOM 的另一个原因是它使得为相应的 Java 对象编写序列化/反序列化代码变得容易,如果不完全在内存中,这些代码就毫无意义。但是,我不想同时将所有 Java 对象加载到内存中。相反,我想对它们进行一次迭代。
更新:以下是如何在 dom4j 中执行此操作的示例:http://docs.codehaus.org/display/GROOVY/Reading+XML+with+Groovy+and+DOM4J。无论如何要在 jdom 中执行此操作吗?