【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 | $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時間くらいかかりました。
以上、また同じことで時間を浪費しないためのメモでした。