
他の人がASTERIAでxmlファイルを読込む処理を作ったのですが、その中の配列の定義方法が何やら変な感じがします。
recordタグの部分が配列であるxmlファイルを作ります。
<?xml version="1.0" encoding="utf-8"?>
<root>
<record>
<field1>あ</field1>
<field2>い</field2>
<field3>う</field3>
</record>
<record>
<field1>か</field1>
<field2>き</field2>
<field3>く</field3>
</record>
<record>
<field1>さ</field1>
<field2>し</field2>
<field3>す</field3>
</record>
</root>
私なら、recordの部分を配列として定義します。

ところが、その人はrecordを必要な数だけ定義していました。

Mapperで転記して実行してました。入力データをそのまま読み込めています。


ちなみに、テストデータのrecordが4以上になった場合は、4つ目以降が読めなくなりました。定義が3つまでなので、そうなりますよね。もちろん、逆に少ない場合(recordが2以下)は、その数だけが読み込まれます。
■ 後書き
仕様上、recordは0〜3までしかありえないのであれば、これで良いといえば良いのかと思っていたのですが、どうやら後者の方法の方が正しかったらしいです。
xmlってhttpと同じような書き方をするから、慣れている後者をイメージしながらレイアウトを作っていたのですが、よく考えるとイメージするべきなのはCSVや固定長のレイアウトなんですよね。
次回、その辺りの失敗事例を書いてみます。
前回:ASTERIAでxml文書を扱ってみたNo6 身も蓋もない話
次回:ASTERIAでxml文書を扱ってみたNo8 配列の定義2
最新の記事:http://harikofu.blog.fc2.com/
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end ---
スポンサードリンク


