=encoding euc-jp =pod =head1 名前 XML::RSSLite - 軽量で"形式ばらない"RSS(そしてXMLのようなものの)パーザー =head1 概要 use XML::RSSLite; . . . parseRSS(\%result, \$content); print "=== Channel ===\n", "Title: $result{'title'}\n", "Desc: $result{'description'}\n", "Link: $result{'link'}\n\n"; foreach $item (@{$result{'item'}}) { print " --- Item ---\n", " Title: $item->{'title'}\n", " Desc: $item->{'description'}\n", " Link: $item->{'link'}\n\n"; } =head1 説明 このモジュールは利用できるドキュメントから、なるべく多くの内容を取り出そうとします。 そして他の方法に比べるとXMLに従っているかについて、あまり注意を払っていません。 XML::Parserに頼るよりも、これは発見的で、素晴らしい古い形式のPerl正規表現を 利用します。これは単純なハッシュ構造体にデータを格納し、完了したとき 適切なRSSファイルを再構築するために必要な最小限のデータを持っていると みなすことができるように、確実なタグに"別名を付けます"。 これは基本的なチャンネルとその要素のtitle、description、そしてlinkを 取得することを意味します。 このモジュールはRDF & RSSに加えて、"scriptingNews"と"weblog"フォーマットを 解析することにより、より使えるリンクを取り出します。 これは出力をできるだけ"衛生的する"ことも行います。マンジングには以下のものが 含まれます: =over =item プレーンなテキストにするためHTMLタグを削除 =item 0-9~!@#$%^&*()-+=a-zA-Z[];',.:"<>?\s以外の文字を削除 =item が空のときを使用 =item が空のときに間違ったurlを使用 =item もし必要であれば、<a href=...>からリンクの取り出し =item ftpとhttpにリンクを制限 =item サイトベースに相対的なURLを付与 =back =head2 EXPORT =over =item parseRSS($outHashRef, $inScalarRef) I<$inScalarRef>は解析されるドキュメントが入ったスカラーへのリファレンスです。 その内容は事実上、破壊されます。I<$outHashRef>は解析された内容が格納される ハッシュへのリファレンスです。 =back =head2 EXPORTABLE =over =item parseXML(\%parsedTree, \$parseThis, 'topTag', $comments); =over =item parsedTree - 必須 解析されたドキュメントを格納するハッシュへのリファレンス。 =item parseThis - 必須 解析するドキュメントが入ったスカラーへのリファレンス。 =item topTag - オプション ルート・ノードとみなすタグ。ここを未定義にしておくことは推奨されません。 =item comments - オプション =over =item false parseThisから内容を削除します will remove contents from parseThis =item true parseThisからコメントを削除します =item 配列リファレンスはtrueで、コメントはここに格納されます =back =back =back =head2 注意 これは規範に従っているパーザーではありません。これは以下のものは扱いません =over =item <foo bar=">"> =item <foo><bar> <bar></bar> <bar></bar> </bar></foo> =item <![CDATA[ ]]> =item PI =back 以下のものは、確認が行われません。 DTDがなければ適切に処理することはできません。 =over =item エンティティ =item 名前空間 これは次のリリースでは入ってくるかもしれません。 =back =head1 参考資料 perl(1), C<XML::RSS>, C<XML::SAX::PurePerl>, C<XML::Parser::Lite>, <XML::Parser> =head1 作者 Jerrad Pierce <jpierce@cpan.org>. Scott Thomason <scott@thomasons.org> =head1 ライセンス(=LICENSE) Portions Copyright (c) 2002 Jerrad Pierce, (c) 2000 Scott Thomason. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 翻訳者 川合孝典(GCD00051@nifty.ne.jp)