【PHP】simplexml_load_fileを使ってxml/rdfの要素にアクセスする

simplexml_load_file は XMLファイルをパースし、オブジェクトに代入する関数でふ。
どうやらPHP5以降で使えるようになったのだとか、そうでないとか。

では早速サンプルコード。

<?php 
$RSSpath = "http://alfalfalfa.com/index.rdf";
 $i = 0; 
 
$XML = simplexml_load_file ( $RSSpath );
foreach ( $XML->item as $entry ) {
    $blogname = "アルファモザイク";
    $title = $entry->title;
    $link = $entry->link;
    $dc = $entry->children('http://purl.org/dc/elements/1.1/');
    $date = date('Y.m.d.G:i', strtotime($dc->date));
    echo "<div><div class=\"t1\">$date &nbsp; | &nbsp; $blogname</div>";
    echo "<div class = \"t2\"><a href =\"$link\">$title</a></div></div>";
        $i++;
        if ($i > 4) { 
            break;
        }
}
?>

2chまとめサイトアルファモザイク(個人的によく見るのでなんとなく)のrdfの各要素にアクセスするPHPのサンプルコードです。
※echoでのhtml出力部分はお好みで。

xmlをパースして、entryだかitemをkeyに値を取り出すコードは
すぐ調べればサンプルコードがたくさんあるのですが、
「dc:date」「dc:source」のように、"dc:"という接頭辞がついた要素へのアクセスで難儀したので、
ここに備忘録としてメモします。

$dc = $entry->children('http://purl.org/dc/elements/1.1/');

children(名前空間のURL)として、繰り返しの子要素を配列に格納します。
これを解決するのに1時間くらいかかりました。


以上、また同じことで時間を浪費しないためのメモでした。