snbhsmt_log

ネットワークとコンピュータ、その他いろいろ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DailymotionのRSSがパース出来なくなった

Dailymotion の RSS を XML::Simple でパースするとエラーが出る様になってしまった。
not well-formed (invalid token) at line 80, column 351, byte 8111 at /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/XML/Parser.pm line 187
環境: CentOS 5.2 、perl のモジュールは全て RPM でインストールしてある。
とりあえず簡単に対応可能な手を探してみた。

XML::SAX をインストールしていない状態で以下をテスト。
テスト1
my $parser = XML::Parser->new(Style => 'Simple');
my $data = $parser->parse($rss);
テスト2
$XML::Simple::PREFERRED_PARSER = undef;
my $parser = XML::Simple->new();
my $data = $parser->XMLin($rss);
テスト3
$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
my $parser = XML::Simple->new();
my $data = $parser->XMLin($rss);

XML::SAX をインストールして以下をテスト。
テスト4
$XML::Simple::PREFERRED_PARSER = 'XML::SAX::PurePerl';   # undefと同じ
my $parser = XML::Simple->new();
my $data = $parser->XMLin($rss);

テスト4でパース出来た。
PurePerl パーサは非常に遅いけど、XML::Parser がパースできないものもパース可能。
スポンサーサイト

« XML::SAX の ParserDetails.ini|Top|SELinux で CGI から外部ネットワークへの通信を許可する »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://snbhsmt.blog110.fc2.com/tb.php/103-4bb90cc5

Top

HOME

snbhsmt

Author:snbhsmt
Google Profiles

http://www.ksky.ne.jp/~snbhsmt/

全ての記事を表示する

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。