XML_Feed_Parser_Atomが時刻情報を取れない

  • 投稿日:
  • by
  • カテゴリ:

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フィード

【送料無料】Web開発者のためのRSS & Atomフィード
価格:2,940円(税込、送料別)