XML-RSSLite-0.11 > XML::RSSLite

名前

XML::RSSLite - 軽量で"形式ばらない"RSS(そしてXMLのようなものの)パーザー

概要

  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";
  }

説明

このモジュールは利用できるドキュメントから、なるべく多くの内容を取り出そうとします。 そして他の方法に比べるとXMLに従っているかについて、あまり注意を払っていません。 XML::Parserに頼るよりも、これは発見的で、素晴らしい古い形式のPerl正規表現を 利用します。これは単純なハッシュ構造体にデータを格納し、完了したとき 適切なRSSファイルを再構築するために必要な最小限のデータを持っていると みなすことができるように、確実なタグに"別名を付けます"。 これは基本的なチャンネルとその要素のtitle、description、そしてlinkを 取得することを意味します。

このモジュールはRDF & RSSに加えて、"scriptingNews"と"weblog"フォーマットを 解析することにより、より使えるリンクを取り出します。 これは出力をできるだけ"衛生的する"ことも行います。マンジングには以下のものが 含まれます:

プレーンなテキストにするためHTMLタグを削除
0-9~!@#$%^&*()-+=a-zA-Z[];',.:"<>?\s以外の文字を削除
<link>が空のとき<url>を使用
<link>が空のとき<title>に間違ったurlを使用
もし必要であれば、<a href=...>からリンクの取り出し
ftpとhttpにリンクを制限
サイトベースに相対的なURLを付与

EXPORT

parseRSS($outHashRef, $inScalarRef)

$inScalarRefは解析されるドキュメントが入ったスカラーへのリファレンスです。 その内容は事実上、破壊されます。$outHashRefは解析された内容が格納される ハッシュへのリファレンスです。

EXPORTABLE

parseXML(\%parsedTree, \$parseThis, 'topTag', $comments);
parsedTree - 必須

解析されたドキュメントを格納するハッシュへのリファレンス。

parseThis - 必須

解析するドキュメントが入ったスカラーへのリファレンス。

topTag - オプション

ルート・ノードとみなすタグ。ここを未定義にしておくことは推奨されません。

comments - オプション
false parseThisから内容を削除します will remove contents from parseThis
true parseThisからコメントを削除します
配列リファレンスはtrueで、コメントはここに格納されます

注意

これは規範に従っているパーザーではありません。これは以下のものは扱いません

  •   <foo bar=">">
  •   <foo><bar> <bar></bar> <bar></bar> </bar></foo>
  •   <![CDATA[ ]]>
  •   PI

以下のものは、確認が行われません。 DTDがなければ適切に処理することはできません。

エンティティ
名前空間

これは次のリリースでは入ってくるかもしれません。

参考資料

perl(1), XML::RSS, XML::SAX::PurePerl, XML::Parser::Lite, <XML::Parser>

作者

Jerrad Pierce <[email protected]>.

Scott Thomason <[email protected]>

ライセンス(=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.

翻訳者

川合孝典([email protected])