Разбор файла CSV и получение значения файла из него - PullRequest
0 голосов
/ 27 мая 2019

Вопрос, касающийся синтаксиса Mule 4 и DWL.У меня есть прослушиватель файлов, который ожидает CSV-файл.
скажем, файл в этом формате
значение1, значение2, значение3, значение4
Затем у меня есть обработчик сообщений "var" и там нужноприсвойте значение value3 (третье поле) переменной.Как я могу избежать этого?Ваша помощь приветствуется.

1 Ответ

1 голос
/ 28 мая 2019

Если у вас есть только одна строка, вы можете получить доступ к первой строке, используя индекс 0: [0], а затем получить доступ к третьему полю, используя индекс 2 [2].Индексы начинаются с 0.

Примечание , если ваш CSV НЕ имеет строки заголовка, обязательно добавьте это в файл: 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>
...