故あって、RSS1.0のitemに付けられているattributeを取得したかったんだけどなかなか出来なくて嵌った。しかも解答はバカみたいに簡単でやんの。

対象はこんなの。

<item rdf:about="http://hoge/huga">
  <title></title>
  <link></link>
  <description></description>
  <dc:creator></dc:creator>
  <dc:date></dc:date>
</item>
まず最初にdc:dateの取得。

これはNamespaceとchildrenで行ける。

$dc = $item->children('http://purl.org/dc/elements/1.1/');
echo (string) $dc->date;



次にitemのrdf:about。

始めにこうやったらなんかそれっぽいものが表示されたのだけど...

$rdf = $item->children('http://www.w3.org/1999/02/22-rdf-syntax-ns#');
var_dump($rdf);

attributes()を試みても「ノードなんかねーよ!」と怒られる。
(※当たり前です)



正解はこうだった...

$rdf = $item->attributes('http://www.w3.org/1999/02/22-rdf-syntax-ns#');
var_dump($rdf->about);


間抜けってレベルじゃねーな。。

久々にがっくりきて悔しいのでメモっておきます。