|
ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。
zip形式
tgz形式
先日SAX関数でRSS(RDF Site Summary)のパースをやってみましたが、「SAXとくればDOM」ということでやってみました。ただ、フツーにDOMをやったのではつまらないので、以前に作ったXMLアクセスクラスの自動生成スクリプトを使ってDOMアクセスクラスを吐かせて、それを使ってみました(ややこしい。。。)。
実際、RSS1.0では名前空間が使用されていますが、自動生成されたXMLアクセスクラスは名前空間をサポートしていません。。。が、たまたま要素名がユニークなため、自動生成されたアクセスクラスでも使えてしまいます(^-^;
ざっとですが、以下のような流れでクラスを作りました。
●test.php
<?php
require_once("phl/RDF.phl");
?>
<?php
function doIt($root)
{
$item = $root->getItem();
for ($i = 0; $i < count($item); $i++) {
$title = $item[$i]->getTitle();
$link = $item[$i]->getLink();
printf('<li><a href="%s" title="%s">%s</a></li>', $link->getContent(),
$title->getContent(),
$title->getContent());
}
}
unset($root);
$root = new RDF("http://www.doyouphp.jp/home.rss");
doIt($root);
$root = null;
?>
●test.phpからの差分
<?php
:
$root = new RDF("http://www.php.net/news.rss");
:
?>
この作業に約5分。。。結構いい感じで動きます(^-^)
後で試しましたが、スラッシュドットジャパンのrdf(http://slashdot.jp/slashdot.rdf)もOKでした(というか、RSS1.0なら大丈夫のハズ。。。)。
ちなみに、結果として以下のようなHTMLが出力されます(適宜改行を入れています)。
●Do You PHP?の場合
<li><a href="http://www.doyouphp.jp/inst/inst_unix_dso_4_shared.shtml"
title="拡張モジュールをshared extensionとしてインストールする">拡張モジュールをshared
extensionとしてインストールする</a></li>
<li><a href="http://www.doyouphp.jp"
title="PHP4.3.0RC4がリリース!">PHP4.3.0RC4がリリース!</a></li>
<li><a href="http://www.doyouphp.jp/aboutlink.shtml"
title="RSSを配信開始しました">RSSを配信開始しました</a></li>
<li><a href="http://www.doyouphp.jp/sample/sample_xml_sax_rss.shtml"
title="XMLパーサ(SAX)でRSSしてみる">XMLパーサ(SAX)でRSSしてみる</a></li>
<li><a href="http://www.doyouphp.jp/cgi-bin/user/eztree.cgi"
title="BBSのCGIを更新">BBSのCGIを更新</a></li>
<li><a href="http://www.doyouphp.jp/tips/tips_phpdoc.shtml"
title="PHPDocにPEAR版PHPDocの情報を追加">PHPDocにPEAR版PHPDocの情報を追加</a></li>
<li><a href="http://www.doyouphp.jp/tips/tips_ura_oci_column.shtml"
title="裏OCI関数マニュアル - Column編">裏OCI関数マニュアル - Column編</a></li>
<li><a href="http://www.doyouphp.jp/tips/tips_ura_oci_coll.shtml"
title="裏OCI関数マニュアル - Collection編">裏OCI関数マニュアル - Collection編</a></li>
<li><a href="http://www.doyouphp.jp/tips/tips_sqlinjection.shtml"
title="ダイレクトSQLコマンドインジェクションについて">ダイレクトSQLコマンドインジェクションについて</a></li>
<li><a href="http://www.doyouphp.jp/sample/sample_others_imap.shtml"
title="IMAP関数でPOP3">IMAP関数でPOP3</a></li>
<li><a href="http://www.doyouphp.jp/book/"
title="メニュー「WEB+DB PRESS」を「BOOK」に変更">メニュー「WEB+DB PRESS」を「BOOK」に変更</a></li>
<li><a href="http://www.doyouphp.jp/sample/sample_ora_cursor.shtml"
title="OCICancelって?">OCICancelって?</a></li>
<li><a href="http://www.doyouphp.jp/tips/tips_phpxref.shtml"
title="PHPXref - クロスリファレンスドキュメントの自動生成">PHPXref - クロスリファレンスドキュメントの自動生成</a></li>
<li><a href="http://www.doyouphp.jp/sample/sample_others_funclist.shtml"
title="利用可能な関数一覧の取得">利用可能な関数一覧の取得</a></li>
<li><a href="http://www.doyouphp.jp/inst/"
title="Apache・PHPのインストール手順を更新">Apache・PHPのインストール手順を更新</a></li>
●PHP本家の場合
<li><a href="http://qa.php.net/" title="PHP 4.3.0RC4 Released">PHP 4.3.0RC4 Released</a></li>
<li><a href="http://www.mysql.com/events/uc2003/" title="MySQL Users Conference and Expo 2003 in San Jose">
MySQL Users Conference and Expo 2003 in San Jose</a></li>
<li><a href="http://www.php.net/news.rss" title="PHP news feed available">
PHP news feed available</a></li>
<li><a href="http://www.afup.org/" title="Forum PHP 2002 in Paris, France">
Forum PHP 2002 in Paris, France</a></li>
<li><a href="http://www.phpmag.de/" title="PHP Magazine - International Edition">
PHP Magazine - International Edition</a></li>
<li><a href="http://www.phparch.com/" title="New Monthly PHP Magazine Launched">
New Monthly PHP Magazine Launched</a></li>
<li><a href="http://www.php.net/" title="PHP site server updates">
PHP site server updates</a></li>
<li><a href="http://www.php.net/urlhowto.php" title="PHP Search Bars available for major browsers">
PHP Search Bars available for major browsers</a></li>
<li><a href="http://weblabor.hu/php-doc-chm" title="10th Release of the PHP Manual CHM Edition">
10th Release of the PHP Manual CHM Edition</a></li>
<li><a href="http://www.linuxworldexpo.de" title="PHP at the LinuxWorld Expo Oct. 29-31th
in Frankfurt, Germany">PHP at the LinuxWorld Expo Oct. 29-31th in Frankfurt, Germany</a></li>
<li><a href="http://www.w3.org/TR/html401/interact/forms.html#access-keys"
title="New keyboard shortcuts">New keyboard shortcuts</a></li>
<li><a href="http://www.php.net/downloads.php" title="PHP 4.2.3 Released">
PHP 4.2.3 Released</a></li>
|