我正在尝试在线上拆分csv文件。为此,我在我的流程中尝试使用以下拆分器:
<splitter expression="#[regex('^')]" doc:name="Splitter"/>
<splitter expression="#[regex('\n')]" doc:name="Splitter"/>
<splitter expression="#[regex('.*')]" doc:name="Splitter"/>
但是,虽然文件有很多行,但我在日志中收到以下消息:
Splitter returned no results. If this is not expected, please check your split expression
答案 0 :(得分:2)
最后,我在这里找到了一个解决方案的教程: http://www.dotnetfunda.com/articles/show/2070/using-mule-studio-to-read-csv-comma-seperated-value-data-from-fileinbo
拆分器必须以这种方式配置:
<splitter expression="#[StringUtils.split(message.payload, '\n\r')]" doc:name="Splitter" />
这需要在流程中包含以下元素:
<configuration doc:name="Configuration">
<expression-language autoResolveVariables="true">
<import class="org.mule.util.StringUtils" />
</expression-language>
</configuration>
答案 1 :(得分:1)
此表达式适用于拆分CSV文件: -
<splitter expression="#[StringUtils.split(message.payload, '\n\r')]" doc:name="Splitter_For_MultipleRow"/>
如果您的CSV文件有列标题,如姓名,年龄等,您可以使用: -
<splitter expression="#[rows=StringUtils.split(message.payload, '\n\r');ArrayUtils.subarray(rows,1,rows.size())]" doc:name="Splitter_For_MultipleRow"></splitter>