RSSを読み取り解析する

過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです. 画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.

将来作る予定であるRSSリーダーのためにRSSを読み込むライブラリを作ってみました。XMLを解析するだけだろうと思っていたのですがそう簡単にいかないみたいですね。

こちらのページは説明だけです。
ライブラリのダウンロード等はこちらからできます。
http://yryr.me/works/library/sharolib-rss

RSSのタイプ

rss-scr

RSS

まず私が引っかかった点はRSSにはタイプがあるということ。いろいろなサイトのRSSを見てみたら2つのタイプが見つかりました。

  • RSS
  • RDF

さて、2つのタイプ、フォーマットが違うため、そう簡単に解析することはできません。私のサイトで公開しているフィードはRSS、私の好きなまとめサイトで公開されているフィードはRDFでした。
とりあえずこの2つを解析できるようにしました。

解析の方法

私のスタンスであまり他人の作ったライブラリは使いたくない。というよりプログラミングを趣味でやっている以上いろいろなものに手を出したいということで自力で解析してみました。
まずはRSSとRDFの差から、XML構文に差があります。
rss-rdf-hikaku
更に、Itemエレメントの書き方にも差があるため、解析パターンの流用もできませんね。それぞれ独立したパーサーを用意する必要があります。
それぞれのエレメント名を残しておきます。もしかしたらサイトによって書かれ方が違うかもしれません。

項目 RSS RDF
タイトル title
リンク link
説明 description
作者 creator
サブタイトル subject
更新日 pubDate date
内容 content
又は content:encoded
カテゴリ categeory

あくまで私が調べたサイトでこの様になっただけです、もしかしたら他に項目があるかもしれません。
このようにRSSとRDFで項目に差があることから少しやりづらいですよね。ちなみにWordPressではカテゴリって書かれてるのに出力されている内容はタグだとか…

ライブラリ

ライブラリはこちらのページでまとめています。
とりあえず私のサイトのフィードでは正常に出力されました。
http://yryr.me/works/library/sharolib-rss