livedoor blogとか。
atomを見ると、以下のようになっています。
<entry>
<title>~~~~</title>
<link rel="alternate" type="text/html" href=~~~~ />
<modified>2011-05-23T07:44:00Z</modified>
<issued>2011-05-23T16:44:02+09:00</issued>
<id>tag:blog.livedoor.jp,~~~</id>
<summary type="text/plain">~~~・・・
で、そのatomのパーサの定義は、以下のようになっておりました。
/usr/share/php/XML/Feed/Parser/AtomElement.php
protected $map = array(
'author' => array('Person', 'fallback'),
'contributor' => array('Person'),
'id' => array('Text', 'fail'),
'published' => array('Date'),
'updated' => array('Date', 'fail'),
'title' => array('Text', 'fail'),
'rights' => array('Text', 'fallback'),
'summary' => array('Text'),
'content' => array('Content'),
'link' => array('Link'),
'enclosure' => array('Enclosure'),
'category' => array('Category'));
太字にしたのが時刻情報ぽい部分なわけですが。さっきの生atomを見ていただいて分かるように、これではヒットしませんね。(汗)
というわけでよく分かりませんが、以下の1行を追加してごまかしておきました。
'modified' => array('Date', 'fail'),
livedoor由来じゃないatomも同様だったので、誰が悪いのか分かりませんが、これ以上調べるのもイヤンな感じ。atom1.0の規格を調べる?もしかして0.3の盲腸だったりして→みんな1.0のフリしてるだけとか?
ググればわかりますが、「livedoorのatomを取るためにXML_Feed_Parserを使おう」みたいな記事を書いている人たちって、動作確認してる?時刻を使わないで並び替えできるの?livedoorが仕様変更した?
あ~そうか『記述順』ね。おそれいりました。
バージョン:
/usr/share/php/XML/Feed/Parser/AtomElement.php
* @version CVS: $Id: AtomElement.php 304308 2010-10-11 12:05:50Z clockwerx $
→そんなに古くなさそうな気が。
![]() 【送料無料】Web開発者のためのRSS & Atomフィード |
コメント