MSXMLのXMLHTTPとActiveXのADODB.Streamを使ってRSSを読み出し、 スクリプトで整形・表示する。 また、XSLTを使ってデザインとそれ以外を分離する。 という方向性で制作中(作りかけ)。下記を参照してください。
本体はHTAとWSHで作ってXMLファイルを吐き出して、 出来たXMLファイルをHTML中のJScriptで読み出してXSLTで整形して表示するという 構成。HTAもWSHも中身はテキストなのでエディタで開いて 機能の検証・改造が容易に出来ます。
(XP SP2で動かなくなったら困るな、という懸念があるが……)
RSSっていうのは、サイトの更新情報なんかを配信するXMLのファイル(フォーマット) のことです。
それを読み出すには、なんらかのソフトが必要です。直接読んで、いけないわけでは ありませんが、読みにくいです。例:http://www.sciencenews.jp/index.rdf
で、どんなソフトで読み出すかですが、大きく分けてふたつの考え方があります。 サーバーサイドで処理するやり方とクライアントサイド(手元のパソコン)で 処理するやり方です。
サーバーサイドで処理する代表的なものがBloglinesです。 また、検索サイトの形をとったBulkfeedsや ニュースサイト風のNews&Blog Search(ドリコム・立命館大学)なども、 RSSを読むツールの一形態と考えてよいでしょう。
一方、クライアントサイドで読み出す 手法もいくつかに分類できます。多くのRSSリーダーは、メールソフトのように ウィンドウが3つの領域にわかれていて、 メールを読むときの要領で仕分けされたRSSを読んでいきます。(Sharp Reader等)
それ以外の形としては、ティッカー(文章が流れる電光掲示板)に表示するものがあります。 常に画面の隅に置いておいて、最新ニュースを横目で見る形です。
んで、長くなったんで簡潔に述べますと、サーバー型はソフトをインストールする 必要が無い一方、そのサーバーがダウンしたらサービスを使えません。
じゃあ、ソフトをインストールしないで使えるRSSリーダーで、サーバーがダウン しても使えるような形はないかな、ということでJavaScriptとHTMLを使った RSSリーダーを作ることができないかな、と考えています。これだと改造が容易 で、好きなデザイン・レイアウトで使えるという利点もあります。
(Windows XPのIE6用です)
ダウンロードはこちらから→ misc/donkey_prealpha5.zip
まず、圧縮ファイルを展開。
次に donkey.hta をダブルクリック
(注意: アンチウイルスソフトが警告を出すことがあります。 WSHスクリプトでファイルを書き出しているからなんですが、 このソフトは別に危険なものではないのでスクリプトを認証するなどして 実行してください)
ウィンドウが開いたら手動更新ボタンを押す。→ 「手動更新しました」と表示されたら
items.xmlというファイルが作られて準備完了。index.htmlを開いてみよう。
index.htmlを開くと、items.xmlを読み出して右手に時系列に表示。 左手にはopml.xmlの中身を表示する。
opml.xmlってのは巡回するサイトの一覧表で、 大抵のRSSアグリゲーターでサイトの一覧をエクスポートすることによって 作ることが出来ます。
「自動更新機能」 … donkey.htaのウィンドウを開きっぱなしにしていると、 50分ごとに自動更新しますので、離席する時、寝る時などは ウィンドウを閉じてください。
本バージョンでは、前バージョンのWSHスクリプトを整理してHTA化。 ボタンひとつで更新できるようになった。
次バージョンでは、ショボすぎるデザインの改良、自動更新機能の詳細設定機能、 エラー処理の改良を行う予定。
将来的には、OPMLエディタ、ソフトの更新情報をRSS化して強制読み出し機能、 簡易既読未読管理、HTML読み出し、更新時間チェック、 それぞれのサイトごとに更新間隔を設定できるようにする、 など。(今はまだ出来てません) そこまでいけたらベータ版かな。
ダウンロードはこちらから→ misc/donkey_prealpha5.zip
(Windows XPのIE6専用です)
「最新XML+XSLTサンプル集」という書籍を購入。 これは実例を数多く紹介するタイプの本。リファレンス的な使い方は全く出来ないが、 簡単なXMLを簡単なXSLで整形するサンプルから、JScriptを併用してXMLのデータを 検索・表示する複雑なサンプルまで全部で50個のサンプルを掲載。
下記のMSXMLのヘルプと併用すると物凄く役に立つ。
下記のヘルプには、XSLT・XPathの詳細な解説、リファレンスも載っていて大変重宝する。 このヘルプだけで理解できない時、上記サンプル集が役に立つと言う感じ。
マイクロソフトから配布されている The Microsoft XML Parser (MSXML) 3.0 SDK (XMLSDK.exe) という(圧縮)ファイルに便利なヘルプファイルが入っている。
http://groups.google.co.jp/groups?hl=ja&lr=&ie=UTF-8&c2coff=1&th=f89ffcf6893cc891&rnum=8
File System Objectはバイナリーが扱えません。このようなとき、ADODB.Streamが使えますよっと。これはMicrosoft ActiveX Data Objectの中のオブジェクトですと。
How To Use the ADODB.Stream Object to Send Binary Files to the Browser through ASP
ドキュメントは、Microsoft Data Access Components SDK (MDAC SDK)のなかにADO Helpってのが入ってますよと。
ActiveX Data Objects (ADO) Frequently Asked Questions
Microsoft Data Access Components (MDAC) 2.6 SDK
userData behavior userData behaviorとは、クッキーのようにクライアントサイドに(つまり、ブラウザに)データを保管する仕組みらしい。
見つけた順に勝手にリンクさせてもらいます。
http://weblog.cemper.com/a/200308/06-javascript-rss-reading.php
Hawk's W3Laboratory - シテキJavaScript研究サイト - 超役立つ資料満載。
JavaScriptに限らず、一般的なRSSリーダー全般についての役立つ資料。
http://bb.watch.impress.co.jp/column/blog/2004/04/23/
http://hail2u.net/blog/rss/rss_aggregator_list.html
http://pc5.2ch.net/test/read.cgi/software/1077920524/l50
http://www.hyuki.com/yukiwiki/wiki.cgi?RSS
http://www.feedroll.com/rssviewer/
http://www.vector.co.jp/magazine/spotlight/040630/sl0406301.html
RSS 2.0によるコンテンツ配信 (IBM developerWorks)
W3C-DTF (Date and Time Format) http://www.w3.org/TR/NOTE-datetime
http://anoh.s10.xrea.com/works/03-08.php#d2003-08-16c1
Feedster(http://www.feedster.com/)、Daypop(http://www.daypop.com/)
http://www.microsoft.com/japan/security/incident/download_ject.mspx
http://support.microsoft.com/default.aspx?scid=kb;ja;833633
http://testesca.at.infoseek.co.jp/hoka/sonota.htm#Rreader
http://slashdot.jp/article.pl?sid=04/07/22/0730223&topic=104&mode=thread&threshold=-1