Ajaxへの熱が冷めはじめた昨今、しかしXMLファイルを扱う機会はあまり減りません。
使用したXML::Simpleモジュールのバージョンは2.18でした。
Perlのバージョンが5.8であれば、インストールされています。
使い方
my $xml = <<'XML'; <?xml version="1.0" encoding="UTF-8"?> <urlset> <url>http://127.0.0.1/</url> <title>localhost</title> <copyright>Administrator</copyright> </urlset> XML use XML::Simple; my $xs = new XML::Simple(); my $parser = $xs -> XMLin( $xml ); my %parse = ( 'uri' => $parser -> {'uri'}, 'title' => $parser -> {'title'}, 'copyright' => $parser -> {'copyright'}, ); use utf8; foreach my $key ( keys %parse ){ utf8::encode( $parse{$key} ); printf( "%s : %s\n", $key, $parse{$key} ); }
不具合
エンコードが正しく指定されていても、UTF-8以外であれば受け付けてくれません。
おわりに
結果の文字列にBOMを付けるという余計な事をするため、
utf8::encodeでBOMを除去する処理が必要になってしまいます。
スイッチをつけるなどして、選べるようにしてほしい。
更新履歴
- 2008-04-04
- サイト移動に伴うHTMLの修正(旧URI:[廃止])
- 2008-01-07
- 公開