我有一个看起来像这样的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
的方法将停止处理文件。
您可以使用面向块的方法,并避免读取完整文件。