【发布时间】:2011-08-09 17:04:51
【问题描述】:
我想遍历一个 XML 文档,该文档本质上是一个结构相同的 XML 元素的列表。元素将被序列化为 Java 对象。
<root>
<element attribute="value" />
<element attribute="value" />
<element attribute="value" />
...
</root>
根元素中有很多元素。我不希望将它们全部加载到内存中。我意识到我可以为此使用 SAX 处理程序,但是使用 SAX 处理程序将所有内容反序列化为 Java 对象似乎相当迟钝。我发现 JDOM 非常易于使用,但据我所知,JDOM 总是解析整个树。有没有一种方法可以使用 JDOM 一次解析一个子元素?
使用 JDOM 的另一个原因是它使得为相应的 Java 对象编写序列化/反序列化代码变得容易,如果不完全在内存中,这些对象就毫无意义。但是,我不想同时将所有 Java 对象加载到内存中。相反,我想对它们进行一次迭代。
更新:这是一个如何在 dom4j 中执行此操作的示例:http://docs.codehaus.org/display/GROOVY/Reading+XML+with+Groovy+and+DOM4J。无论如何要在 jdom 中执行此操作?
【问题讨论】:
-
你可能应该看看JSefa 它不是很流行但简单易用。您应该下载它并查看示例。