« 中秋の名月 | 最新のページに戻る | 通知領域が消えた、けど直った »

■ 「本日のPubMed RSS feed」付けてみました

PubMedがRSS feedを出すようになってますね。検索の結果を"Send to"から"RSS Feed"を選択してやって、"Create Feed"を押してやると、その検索の結果の最新版を見るためのRSS FeedのXMLファイルのurlが出力されます。RSSリーダを使ってる人はそれで読んでやればいいわけです。

Movable Typeはプラグインを使ってRSS feedを読み込むことが出来ます。そこで、エントリの一番上に本日のPubMed RSS feedというのを作って、再構築するたびに更新されるようにしました。(cronを使って自動更新するというのは以前に失敗したので今回はやってません。) たまに検索キーワード変えたりしたらおもしろいかもしれないけど、ま、とりあえずテストということでやってみます。あと、アンテナ使ってる人が混乱しないように、新しいエントリを書いたときだけこのRSS feedも更新する予定。(追記:でも、いまのままだとエントリ更新するたびにRSS feedも更新されて、RSS feedの方がhtmlファイルの中では上の方にあるので、はてなアンテナで表示を「シンプル」にしている人にはRSS feedの方しか見えなくて不便かも。ソース上では更新エントリの方が上に来るようにしたいけど、それはまたの機会に。)

どんなふうにimplementされてるか:ほんとうはFeeds.Appを使うと良さそうなのですが複雑で扱いにくそうなので、よりシンプルなGetXMLを使用しました。GetXML.plをプラグインのフォルダに入れて、index.htmlのテンプレートに以下のコードを追加。

<MTGetXML 
location="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/erss.cgi" 
rss_guid="0XZeiMI1_Dil4pkz70GAfj7ORTWgMjk13GfVSNAE3rV">
 <MTGetXMLElement name="channel">
 <ul>
 <MTGetXMLElement name="item">
  <li><a href="<$MTGetXMLValue name="link"$>">
<$MTGetXMLValue name="title"></a> 
<$MTGetXMLValue name="category">
  </li>
 </MTGetXMLElement>
 </ul>
 </MTGetXMLElement>
</MTGetXML>

rss_guid=のところは検索キーワードなどによって適宜変える、という感じです。

しかし、XMLファイルを読んでみると、せっかくのページやら発行年の情報が取れなくて、全部"description"のなかに入っている、というもったいないやり方をしていることがわかります。authorも複数あるときは"authors"の下に一人一人のauthorを入れるようにとかすればよいのに、分けることができないし。とか細かい話はよいとして。 追記:勘違いでした。PubMedが提供しているのはあくまでRSSなので、itemのなかにtitle, link, descripptionがある、というのはRSSで決められた形式でした。私が言ったようなことはXMLとしてDTDとかを作ったうえでの話で、方向性が違うのでした。


お勧めエントリ


月別過去ログ