簡體   English   中英

駱駝在正則表達式上拆分CSV文件

[英]Camel split CSV file on regex

我正在處理具有以下數據的csv文件的一種情況

100| Some Delimited Data
200| Some Delimited Data
100| Some Delimited Data
400| Some Delimited Data
400| Some Delimited Data
200| Some Delimited Data

我正在嘗試讓駱駝路線

when 100
  marshal csv & send to Bean
when 200
  marshal csv & send to bean

我正在嘗試用駱駝路線。 當我使用XML時的示例可以在路由中解析XML

我無法使用Camel-Bindy,因為我在行中沒有固定的定界符

Row 1 can have 10 '|' (pipes / delimiter)
Row 2 can have 20 '|' (pipes / delimiter)
Row 3 can have 16 '|' (pipes / delimiter)

它們的長度是可變的,我已經在bean中處理過了。 有什么方法可以解析或使用任何正則表達式?

由於您一直在使用| 作為分隔符,您可以使用默認的CSV支持將內容加載為列表列表,然后拆分正文以將每一行作為列表獲取,然后在bean中處理該列表(行):

<unmarshal>
    <csv delimiter="|"/>
</unmarshal>
<split>
    <simple>${body}</simple> <!-- Body will be a list of lists -->
    <choice>
        <when>
            <simple>${body[0]} == '100'</simple>
            <to uri="bean:processor100"/>
        </when>         
        <when>
            <simple>${body[0]} == '200'</simple>
            <to uri="bean:processor200"/>
        </when>
    </choice>
</split>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM