我有一个看起来像这样的XML:

<root>
  <header>
    ...
  </header>
  <entries>
    ...
  </entries>
</root>


只有一个标头节点,但是有很多条目。
有没有一种方法可以将此节点提取为Java Bean,而无需读取整个XML文件。

如果可能,SpringBatch或XStream中是否对此提供任何支持?

我不认为使用带有StaxEventItemReader的SpringBatch面向块的Tasklet是合适的,因为我只想阅读一项。

最佳答案

您可以编写自己的ItemReader来扩展StaxEventItemReader(或者最好是委派它),重新定义方法ItemReader.read()并更改条件以指示读者已“用尽”,仅在读取第一个有效节点后才返回null:当发现Spring-batch ItemReader.read()返回null的方法将停止处理文件。
您可以使用面向块的方法,并避免读取完整文件。

07-24 20:29