Мул сплиттер с помощью регулярных выражений не дал результатов

Я пытаюсь разбить 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

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>

Это выражение работает для разделения файла 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>
Другие вопросы по тегам