0

Mule は初めてなので、ご容赦ください。受信した次の CSV ファイルがあります。

Company1,2,123 Street,Winchester,UK
"000010","CHRISTINE","I","HAAS","A00","3978","1995-01-01","PRES",18,"F","1963-08-24",152750.00
"000020","MICHAEL","L","THOMPSON","B01","3476","2003-10-10","MANAGER",18,"M","1978-02-02",94250.00

最初の行のヘッダーには、会社情報と CSV ファイルのレコード数 (従業員数) が含まれています (ヘッダーの 2 番目のパラメーター)。

次に、それを次の XML に変換する必要があります。

<?xml version="1.0" encoding="UTF-8"?>
<tns:employeedata xmlns:tns="http://coxb.test.legstar.com/payrollemployee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://coxb.test.legstar.com/payrollemployee PayrollEmployee.xsd ">
  <tns:employeecount>2</tns:employeecount>
  <tns:employeelist>
    <tns:employees>
      <tns:employeenumber>000010</tns:employeenumber>
      <tns:firstname>CHRISTINE</tns:firstname>
      <tns:middleinitial>I</tns:middleinitial>
      <tns:surname>HAAS</tns:surname>
      <tns:department>A00</tns:department>
    </tns:employees>
    <tns:employees>
      <tns:employeenumber>000020</tns:employeenumber>
      <tns:firstname>MICHAEL</tns:firstname>
      <tns:middleinitial>L</tns:middleinitial>
      <tns:surname>THOMPSON</tns:surname>
      <tns:department>B01</tns:department>
    </tns:employees>
  </tns:employeelist>
</tns:employeedata>

このファイルは、最初の行 (ヘッダー) なしで簡単に変換できます。私の問題は、ヘッダーを処理して「employeecount」を抽出/変換する方法です。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これを行う最も簡単な方法は、DataMapperを使用することです。入力をCSVに設定し(サンプルCSVを使用)、出力をXMLに設定します(XSDまたはサンプルXMLを使用)。

マッピングビューが表示されたら、employeecountフィールドをクリックします。式を入力できる領域が表示されます。$in.0.__idレコード数を含む、文書化されていないパラメータを使用できます。これはCSVファイルでのみ機能することに注意してください。

最初の行をスキップする方法に関して、DataMapperはデフォルトでこれを行います。

于 2013-03-08T22:34:12.457 に答える