将来作る予定であるRSSリーダーのためにRSSを読み込むライブラリを作ってみました。XMLを解析するだけだろうと思っていたのですがそう簡単にいかないみたいですね。
こちらのページは説明だけです。
ライブラリのダウンロード等はこちらからできます。
http://yryr.me/works/library/sharolib-rss
RSSのタイプ
まず私が引っかかった点はRSSにはタイプがあるということ。いろいろなサイトのRSSを見てみたら2つのタイプが見つかりました。- RSS
- RDF
さて、2つのタイプ、フォーマットが違うため、そう簡単に解析することはできません。私のサイトで公開しているフィードはRSS、私の好きなまとめサイトで公開されているフィードはRDFでした。
とりあえずこの2つを解析できるようにしました。
解析の方法
私のスタンスであまり他人の作ったライブラリは使いたくない。というよりプログラミングを趣味でやっている以上いろいろなものに手を出したいということで自力で解析してみました。
まずはRSSとRDFの差から、XML構文に差があります。
更に、Itemエレメントの書き方にも差があるため、解析パターンの流用もできませんね。それぞれ独立したパーサーを用意する必要があります。
それぞれのエレメント名を残しておきます。もしかしたらサイトによって書かれ方が違うかもしれません。
項目 | RSS | RDF |
タイトル | title | |
リンク | link | |
説明 | description | |
作者 | creator | |
サブタイトル | – | subject |
更新日 | pubDate | date |
内容 | – | content 又は content:encoded |
カテゴリ | categeory | – |
あくまで私が調べたサイトでこの様になっただけです、もしかしたら他に項目があるかもしれません。
このようにRSSとRDFで項目に差があることから少しやりづらいですよね。ちなみにWordPressではカテゴリって書かれてるのに出力されている内容はタグだとか…
ライブラリ
ライブラリはこちらのページでまとめています。
とりあえず私のサイトのフィードでは正常に出力されました。
http://yryr.me/works/library/sharolib-rss