Camel CSVRecord Camel Bindy

时间:2015-10-29 22:16:56

标签: java apache-camel bindy

我正在使用带有bindy(2.16.0)的camel来解析csv文件。该文件包含页眉和页脚。两者都用作元数据来描述所有其他记录的公共数据。 (客户定义因此我无法更改CSV格式)

我使用Bindy为我解析数据。我遇到的问题是,对于CSVRecord,您不能排除页脚。我能够跳过标题,但解析数据失败,因为它无法解析页脚,因为数据格式不同。

有没有办法从CSVRecord bindy中排除最后一行/页脚,或者有骆驼读取并以另一种方式删除最后一行?

2 个答案:

答案 0 :(得分:1)

目前在bindy中不支持此功能。您的案例中的页脚只是一行吗?或者它是否有任何特殊的前导标记来表示它的页脚?

我们可以改进bindy以支持跳过页脚。因此,默认情况下,页脚可能只是最后一行。但只是想知道人们是否可能有多行作为页脚?

在使用bindy解析之前,您需要自己手动删除最后一行。如果文件不大,你可以在内存中使用Camel处理器/ bean并从邮件正文中删除最后一行。

答案 1 :(得分:0)

您可以考虑另一种解决方案:

  • 从客户那里获取csv
  • 通过清理步骤预处理csv:解析header / fooder并将其排除在外。但是收集通用参数,以便丰富其他对象。
  • 解析剩下的"清洁csv"通过bindy,然后用页眉/页脚常用来充实