PHPプログラムに関する各種メモ書き

RSSフィード(XML)をパースしてPHPオブジェクトに変換する【PEAR::XML_Serializer】

RSSフィード(XML)をパースしてPHPオブジェクト(や配列)に変換するには下記の2通りの方法があります

■1. PEAR::XML_Serializerを使用する方法

xml 文章を配列やオブジェクトにしてくれる PEAR::XML_Serializer

http://pear.php.net/package/XML_Serializer/download

からダウンロード

PEARでのインストール方法

pear install XML_Util
pear install XML_Serializer-0.18.0

でOK!

<b>またはこのファイルをダウンロード(phplib.zip)してサーバーにアップロードします。</b>

使い方

$url = "http://sankei.jp.msn.com/rss/news/points.xml"; // RSSフィードのURL
$xml = file_get_contents($url);
require_once "XML/Unserializer.php";
$parser = new XML_Unserializer(array('parseAttributes' => true));
$parser->unserialize($xml);
$data = $parser->getUnserializedData();
if (PEAR::isError($data)) {   print ('ERROR');   }
print_r($data);

エラー補足は PEAR::isError で行えます。

■2. SimpleXMLElement (要PHP5以降)を使用する方法

使い方

$url = "http://sankei.jp.msn.com/rss/news/points.xml"; // RSSフィードのURL
$xml = file_get_contents($url);
$xml = preg_replace( '/dc:/', 'dc_', $xml );
// <dc:subject> <dc:date> などを取得する場合は : を _ に置換する。
$data_obj = new SimpleXMLElement($xml);
$data = (ARRAY)$data_obj;
print_r($data);

どちらも簡単ですね!

関連エントリー

添付ファイル1
phplib.zip ( 37.3 KBytes ) ダウンロード
No.258
03/18 09:59

edit

添付ファイル

XML
PEAR