【发布时间】:2014-06-08 10:22:25
【问题描述】:
我的 Mule 应用程序中有一个 CSV 文件,如下所示:
1,Item,Item,Item
2,Field,Field,Field,Field
2,Field,Field,Field,Field
3,Text
有没有办法可以将 Mule 中的这个文件转换为如下内容:
1,Item,Item,Item,,,,,,
2,Field,Field,Field,Field,,,,,
2,Field,Field,Field,Field,,,,,
3,Text,,,,,,,,
基本上,我在这里需要做的是在每一行的末尾附加一个字符串(包含 x 次出现的分隔符)。我需要附加到每一行的分隔符的数量可以由该行的第一个字符确定,例如if row[0]='1' then (append ",,,,,,") else if row[0]='2' then (append ",,,,,"etc.
我遇到这个相当烦人的问题的原因是,为我的 Mule 应用程序提供输入的系统会生成一个文件,其中每行中的列数可能会有所不同。我正在尝试填充此文件,以使每行中的列数相等,以便我可以将其传递给 Java 转换器,如使用 FlatPack 解释的here (期望 x 列,它不会接受每行中列数不同的文件)。
有人对我如何解决这个问题有任何想法吗?提前致谢。
更新
根据@Learner 的建议和@EdC 的回答 - 我在 Mule 中使用以下方法实现了这一点:
<flow name="testFlow1" doc:name="testFlow1">
<file:inbound-endpoint .../>
<file:file-to-string-transformer doc:name="File to String"/>
<component doc:name="Java" class="package.etc.etc.MalformData"/>
</flow>
【问题讨论】:
标签: csv append mule delimiter mule-studio