Xml 如何使用Spring Btch Delimiter输出复杂属性

Xml 如何使用Spring Btch Delimiter输出复杂属性,xml,spring-batch,Xml,Spring Batch,我想处理XML文档并输出逗号分隔的输出。 我正在使用Spring批处理,每个链接- 具体地说,我使用StateVentitemReader读入XML,并使用FlatFileItemWriter进行编写,并配置了DelimitedLineAggregator 我遇到的问题是“fieldExtractor”bean BeanWrapperFieldExtractor将输出 基元属性(即基元值字符串、int等)。我的一些属性是 复杂类型。因此,使用这个in-the-box fieldExtractor

我想处理XML文档并输出逗号分隔的输出。 我正在使用Spring批处理,每个链接-

具体地说,我使用StateVentitemReader读入XML,并使用FlatFileItemWriter进行编写,并配置了DelimitedLineAggregator

我遇到的问题是“fieldExtractor”bean BeanWrapperFieldExtractor将输出 基元属性(即基元值字符串、int等)。我的一些属性是 复杂类型。因此,使用这个in-the-box fieldExtractor,我只能打印对象指针 这是没有用的

这篇文章建议扩展DelimitedLineAggregator来修改字段值-

看起来我必须这样做,并为每个“复杂”字段插入一个服务。 该服务必须“递归地”循环通过field对象来生成 逗号分隔的字符串

这听起来怎么样?有没有可以共享的递归算法

谢谢

更新:谢谢你,卢卡。以下是输入和期望输出的示例(对T形三通不准确)


也许您最好使用自定义类来扩展FieldExtractor,而不是DelimitedLineAggregator。
根据spring的说法,这个类必须将对象转换为可以转换为字符串的小部分。如果你想控制场的顺序,那就更好了

字段提取器:

您可以发布输入和可要求输出的示例吗?