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
- 公開