質問
XMLデータをCSVファイルに出力したいのですが、どのように設定すればよいですか。
以下のようなXMLデータについて、「ResultItemList」の要素件数ごとに繰り返して出力し、「ResultCode」と「ResultID」要素内の値はすべてのレコードで同じデータが出力されるようにしたいです。
<?xml version="1.0" encoding="utf-8"?>
<Result>
<ResultStatus>0</ResultStatus>
<ResultValue>
<ResultReport>
<ResultID>62</ResultID>
<ResultCode>46344</ResultCode>
</ResultReport>
<ResultItemList>
<ResultItemData>
<ResultItemID>4895</ResultItemID>
<ResultItemName>ItemName1</ResultItemName>
</ResultItemData>
<ResultItemData>
<ResultItemID>4896</ResultItemID>
<ResultItemName>ItemName2</ResultItemName>
</ResultItemData>
<ResultItemData>
︙
</ResultItemData>
</ResultItemList>
</ResultValue>
</Result>
出力後のCSVデータのイメージは以下です。
| ResultStatus | ResultID | ResultCode | ResultItemID | ResultItemName |
| 0 | 62 | 46344 | 4895 | ItemName1 |
| 0 | 62 | 46344 | 4896 | ItemName2 |
| 0 | 62 | 46344 | 4897 | ItemName3 |
回答
[単純な繰り返し]ロジックを利用して「ResultItemData」要素を基準に繰り返しを実施することで、XMLデータを指定の形式のCSVデータとして抽出することが可能です。
[単純な繰り返し]ロジックにおいてroot要素直下でない要素を指定した場合、指定した要素の配下のデータはデータ件数ごとに繰り返され、指定要素以外の階層のデータはすべて同じ値が出力されます。
質問イメージのような形式でCSVデータを出力したい場合、以下のような実装方法でマッピングしていただくことでXMLデータから変換することが可能です。
こちらの実装の場合、「ResultItemData」要素の配下のデータはデータ件数ごとに繰り返され、「ResultItemData」要素以外の階層のデータはすべて同じ値が出力されます。
コメント
0件のコメント
記事コメントは受け付けていません。