
前回はASTERIAでxml形式のデータを使うための基本を確認しました(ASTERIAでxml文書を扱ってみたNo1 初めに)。今度は、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>
</root>
これを読み込むだけのフローを作ります。特に必要はないのですが、読込後に何となくMapperを入れてみました。

うん、OKですね。

■ xmlとMapper
読込時にMapperを挟みましたが、本来であればマッピングをせずに入力をそのまま出力すればいい話でした。
こんな感じですかね。

これでも問題なく動くのですが、あえて手動マッピングにしたのはコレが嫌だったからです。

マッピング定義がないっていうワーニングですが、どうもxmlの単純な出し入れは気に入らないようです。
そして、私もワーニングっていう表示がされているものを使いたくないのです。
■ ファイル読込① 名前空間
ところで、xmlファイルの項目には同じ項目名なのに違う意味を表すための名前空間という考え方があるそうです。
説明できるほど詳しくないのですが、属性と同じような書き方で xmlns="名前空間" となっているらしいので、先ほどのテストデータの1行目に追記してみました。
<?xml version="1.0" encoding="utf-8"?>
<root>
<record xmlns="http://harikofu.co.jp/test/">
<field1>あ</field1>
<field2>い</field2>
<field3>う</field3>
</record>
<record>
<field1>か</field1>
<field2>き</field2>
<field3>く</field3>
</record>
</root>
これで実行してみたのですが、名前空間を指定した1行目が読込めていません。

うーん、少し定義を変えないとダメかな?
■ 後書き
最初のファイル読込の時の読込データ。実験で色々と触っているときに何が気に入らなかったのか、読込んだ結果からタグが消えたりと、どうもデータの改行の判別で奇妙な動きをしたので、テスト時にはあえて改行を消していました。
この記事だと改行していますが、それは横に長くなって見にくかったからです。
私の感覚だと1データが1行で表されている方が見やすいし、階層構造で見たいならxmlを読み込んで表示するソフト(っていうか、大抵のブラウザで表示できる)を使えば良いかなって思ったりします。
・・・まぁ、xmlってモノの考え方からしてどうなのかってのは思うところはありますがね。
前回:ASTERIAでxml文書を扱ってみたNo1 初めに
次回:ASTERIAでxml文書を扱ってみたNo3 読込(名前空間)
最新の記事:http://harikofu.blog.fc2.com/
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end ---
スポンサードリンク


