何となく Blog by Jitta
Microsoft .NET 考

目次

Blog 利用状況
  • 投稿数 - 761
  • 記事 - 18
  • コメント - 37514
  • トラックバック - 222
ニュース
  • IE7以前では、表示がおかしい。div の解釈に問題があるようだ。
    IE8の場合は、「互換」表示を OFF にしてください。
  • 検索エンジンで来られた方へ:
    お望みの情報は見つかりましたか? よろしければ、コメント欄にどのような情報を探していたのか、ご記入ください。
It's ME!
  • はなおか じった
  • 世界遺産の近くに住んでます。
  • Microsoft MVP for Visual Developer ASP/ASP.NET 10, 2004 - 9, 2011
広告

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

その他

わんくま同盟

同郷

 

ふと思ったこと。

@IT 内 Insider.NET にある Insider.NET 会議室 ディレクトリって、探したい対象のカテゴリがわかっている場合、便利です。でも、新しい会議室の方には対応していません。

じゃぁ、自分で作っちまおうか?

でも、どうやって「新着情報」を知る???

そうか、RSS があるじゃないか!最近、質問掲示板でも RSS が配信されるものが多いから、RSS を拾って更新のあったものを自分で分類していけばいいやん!!かつ、ブログだろうがニュースだろうが、何でも登録できちゃうぜ!!

ってことで、RSS を調べた。したら、最初のバージョンが 0.9 だったらしい。次のバージョンが 0.91 で、ここからよりシンプルになることを目指した 2.0 と、0.9 を継承した 1.0 に分かれているらしい。

さらに、マイクロソフト ソーシャルは、Atom って奴で配信されている。ってことで、ひとまとめに RSS といわれている XML ファイルには、(0.9, 0.91, 1.0)と、(2.0)と、(Atom)の3つのフォーマットがあることがわかった。

う~ん。。。とりあえず、こんな感じか?

  1. RSS を取得する URL を、ユーザーが指定する。
  2. 複数ある URL を定期的に巡回する。
  3. XML の階層を調べて、フォーマットを特定する。
  4. フォーマットによって、配信された記事をばらす。
  5. 記事 ID を持っているものはそれを、持っていない場合はリンク先 URL をキーにして重複チェックを行う。
  6. 新しいものについて、「新着」として登録する。
  7. それぞれの記事を、人手で「分類」に分ける。
  8. 「分類」ごとに、HTML、または XML ファイルを作る。
  9. FTP ソフトなどで、HTML または XML を HTTP サーバーにアップする。

RSS を取ってくる方法は、VS2008 のサンプルの中にあるので、ドキュメントを「RSS」でキーワード サーチしてください。そのサンプルでは、.NET Framework が対応している、RSS 2.0 が扱えます。「はてな」が配信しているのは RSS 1.0 なので、そのままでは使えません。また、マイクロソフト ソーシャルが提供しているのは Atom なので、やはり使えません。

とりあえず、どのフォーマットか見分ける方法。

  • RDF Site Summary (RSS) 1.0
    ここを見ると、RSS 1.0 のトップ レベル要素は "rdf:RDF" であるとわかる。

  • RSS 2.0 Specification
    ここを見ると、RSS 2.0 のトップ レベル要素は "rss" であるとわかる。

  • The Atom Syndication Format
    ここを見ると、Atom Syndication Format のトップ レベル要素は "atom:feed" であるとわかる。

このことから、トップ レベル要素のローカル名を見て判断すればよいでしょう。


static public string WhichFormat(XDocument document) {
    var root = document.Root;
    if (string.Compare(root.Name.LocalName, "feed", true) == 0) {
        return "ATOM";
    } else if (string.Compare(root.Name.LocalName, "rdf", true) == 0) {
        return "RSS10";
    } else if (string.Compare(root.Name.LocalName, "rss", true) == 0) {
        return "RSS20";
    } else {
        return "UNKNOWN";
    }
}

で、次は、データの設計かな。

つーか。。。@IT の会議室、RSS 配信してないし。。。

あ。。。大文字小文字の区別をしないようにしたけど、XML って、識別するやんorz

さらに。RSS 1.0 にしろ 2.0 にしろ、バージョンアップしたらどうするよ?要るのは一部だけで、全部をパースするわけじゃないから、まいっか。

投稿日時 : 2009年6月4日 22:26
コメント
  • # re: RSS 2.0 って、RSS 1.0 の上位じゃないのね!
    倉田 有大
    Posted @ 2009/06/05 1:14
    RSSリーダーつくってみたいなーとおもって、種類があると聞いて、挫折した私がとおります。

    解析部分をつくってもらえれば、わたしがGUIを・・げふんげふん。
  • # re: RSS 2.0 って、RSS 1.0 の上位じゃないのね!
    Jitta
    Posted @ 2009/06/05 7:44
    倉田有大さん、コメントありがとうございます。

    仕様は、リンクの通りです。判別はできたので、仕様ごとにパーサーを作れば OK。要は item 要素です。
    私は、タイトルとリンクしか取り出しませんよ?
  • # re: RSS 2.0 って、RSS 1.0 の上位じゃないのね!
    aetos
    Posted @ 2009/06/05 11:54
    @IT新会議室のRSSは非公式なものだそうです。
    http://ap.atmarkit.co.jp/bbs/core/club_cafe/10071

    > ローカル名を見て判断すればよいでしょう。
    厳密には名前空間 URI も見た方がいいでしょう。

    > RSS といわれている XML ファイルには、(0.9, 0.91, 1.0)と、(2.0)と、(Atom)の3つのフォーマットがあることがわかった。

    これは好みの問題かもしれませんが、俺は Atom を RSS と呼びません。
    個人的には、Atom と RSS を総称する場合は「フィード」と呼びます。

    RSS には 0.92~0.94もあるようです。
    が、実際には 1.0 と 2.0 以外はほとんど見ません。
    また、ごく希にですが、Atom 0.3 というのもあります。
    RSS 1.1 というのも企画されたようですが、現状どうなっているのかわかりません。
  • # re: RSS 2.0 って、RSS 1.0 の上位じゃないのね!
    Jitta
    Posted @ 2009/06/06 16:23
    aetosさん、コメントありがとうございます。

    > @IT新会議室のRSSは非公式なものだそうです。
    非公式?「見つけちゃっても見なかったことにしてくれ」というのは、提供していない、ってことだと思いますけど?
    「非公式」というのは、hidoriさんが提供しているものではないかと思います。って、サービス切り替わったときに終わってるか。


    > RSS には 0.92~0.94もあるようです。
    ん~。。。(0.9, 0.91, 1.0) とか書かずに、「1.0系」「2.0系」「Atom系」としたほうがよかったですね。
  • # XDocument って、RSS 2.0 しか解析してくれないの?!
    何となく Blog by Jitta
    Posted @ 2009/06/08 22:38
    XDocument って、RSS 2.0 しか解析してくれないの?!
  • # 3 He later fell Conducting a clinical 1
    Typicalcat58
    Posted @ 2020/01/01 2:49
    http://outdoorhunger.com/%ef%bb%bfmost-reputable-seniors-dating-online-service dating online website for 50 and older http://www.emeco.es/free-cheapest-seniors-online-dating-website-blogs.wankuma.com.pdf senior dating online service in africa
タイトル  
名前  
Url
コメント