解析CSV文件并从中获取文件的值

时间:2019-05-27 13:39:51

标签: mule mule-studio mule-esb mulesoft

有关Mule 4和DWL语法的问题。 我有一个期待csv文件的文件监听器。
假设文件的格式为
值1,值2,值3,值4
然后,我有一个“ var”消息处理器,需要在其中将value3的值(第三个字段)分配给一个变量。 我该怎么做? 感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果只有一行,则可以使用索引0:[0]访问第一行,然后使用索引2 [2]访问第三行。索引从0开始。

注意,如果您的CSV没有标题行,请确保将其添加到file:listener outputMimeType="application/csv;header=false"中,以使dw知道没有标题行:

<flow name="csv">
        <file:listener directory="/path/to/dir"  outputMimeType="application/csv;header=false" >
            <scheduling-strategy >
                <fixed-frequency frequency="100000" />
            </scheduling-strategy>
        </file:listener>

        <logger level="INFO" message="#[payload]" />
        <set-variable value="#[output application/java --- payload[0][2] as String]" variableName="myVar" />

        <logger level="INFO" message="#[vars.myVar]" />
    </flow>

还请注意,您还可以使用transform组件来设置变量,以便在需要更好格式的情况下进行更复杂的转换:

<ee:transform>
            <ee:variables>
                <ee:set-variable variableName="myVar" ><![CDATA[%dw 2.0
output application/java
---
payload[0][2] as String]]></ee:set-variable>
            </ee:variables>
        </ee:transform>