XMLファイルを読み込んでCSVデータをファイルに出力するフローを作ってみます。
フローの流れは、FileGet --> Mapper --> FilePut --> EndResponse(End) と簡単なものです。
読み込むXMLファイル
どこかでみたような記憶もあるXMLファイルですが、、、では、さっそく作ってみます。
1.FIleGetコンポーネントを配置
ツリーペイン上に対象ファイルが表示されているなら、直接ワークスペースにドロップしてFileGetコンポーネントを配置してみましょう
※「選択されたファイルからフィールド定義をインポートしますか?」というダイアログが表示されるので、「はい」を選択してフィールド定義も自動設定しちゃいましょう
ストリームペインにXMLのフィールド定義が反映されてます!!
直接入力して定義を編集することもできますが、簡単ですね。
2.Mapperコンポーネントを配置
出力ストリームはストリーム型を[CSV]にしてフィールド定義を変更、
マッピングします
3.FilePutコンポーネントを配置
ファイルパスに出力先のパスを設定して
4.EndResponseコンポーネントを配置
これで終わりです。実行してみます。
XMLの構造に詳しくなくても、定義情報をインポートできれば、あとはマッピングで繋いで動作を確認できるのは便利です。
他にもFileGetコンポーネントを配置したあとに、ファイルパスプロパティの右端の[...]をクリックしてXMLファイルを選択したときにも同じダイアログがでます。
また、ストリームペインで右クリックメニューから[インポート]を選択して同じ構造のXMLファイルを指定し、
フィールド定義を設定することもできます。
今回、動作の確認で作ったフローとXMLファイルです。
XMLtoCSV.zip (2KB)
最後にXMLデータの処理に関するトピックとして以下に参考となりそうなドキュメントをまとめておきました。
- 【詳細なトピック】- フローの構成要素 - ストリームプロパティ - XML
- 【詳細なトピック】- フローの構成要素 - マッパー
- レコードからXMLを出力時に同一内容のレコードを別ノードにする
- FAQ - XMLスキーマをストリームのフィールド定義に利用できますか?
開発時の参考に。