Yahoo!検索とLiveガジェットのマッシュアップWindows Liveが魅せる次世代マッシュアップ(5/5 ページ)

» 2006年11月30日 09時30分 公開
[大澤文孝,ITmedia]
前のページへ 1|2|3|4|5       

 RSSはXMLデータであるため、ネットワークリクエストオブジェクトを使ってデータを取得するという部分は、ここまで説明してきた内容と違わない。

 しかし、実際にRSSを取得する場合には、次のように、「proxy:〜取得するアイテム数」を指定することになる。

リスト7:Start.Parser.ParseRssResponseメソッドを使ったRSSのパース例。オルタナティブ・ブログのRSSを利用している


response = 
  Web.Network.createRequest(
    Web.Network.Type.XML,
    "http://blogs.itmedia.co.jp/index.rdf", 
    {proxy:"rss", numItems: 5}, OnXmlDataReceived);
response.execute();

 そして受信部となるOnXmlDataRecivedメソッドでは、受け取ったネットワークレスポンスオブジェクトを、そのままStart.Parser.ParseRssResponseメソッドへと引き渡す。


var m_feed = 
Start.Parser.ParseRssResponse(response);

 この戻り値となるm_feed変数が指すオブジェクトは、RSSフィードに含まれるチャンネルをchannelsコレクションに保持している。そこで次のようにすれば、先頭のチャンネルを取得できる。


var channel = m_feed.channels[0];

 チャンネルオブジェクトのitemsコレクションには、それぞれのRSSフィードの項目が格納されている。そこで、次のようにループ展開すれば、RSSフィードを取得できる。linkプロパティがそのコンテンツへのリンク、titleプロパティがタイトルだ。

 ほかにもdescriptionプロパティやsourceプロパティなどがあるようだ。具体的にはデバッガを使って、このオブジェクトが備えるプロパティを調べてみるとよいだろう。


for (var i = 0; i < channel.items.length; i++)
{
var pElement = document.createElement("p");
var aElement = document.createElement("a");
// リンク
aElement.href = channel.items[i].link;
// タイトル
aElement.innerText = channel.items[i].title;
pElement.appendChild(aElement);
m_el.appendChild(pElement);
}

 この実行結果は、画面6のようになる。

画面6■RSSフィードの表示例

 今回説明してきたように、Liveガジェットの内部にコンテンツを表示する方法は、結局のところDOM操作に帰着する。

 ネットワークレスポンスオブジェクトを使って外部コンテンツを取得する場合であっても、最終的には、そのデータをパースして、DOM操作で埋め込んでいく処理をすることになるのだ。

 現状のSDKドキュメントでは、ネットワークレスポンスオブジェクトやRSS関連のオブジェクトの解説が十分ではなく、試しながら使っていくというのが正直なところ。しかし、この辺りの問題は、LiveガジェットSDKが正式版になることで、いずれ解決されていくだろう。

 ところで、今回作成したガジェットは、どれもが、ガジェットが読み込まれるときに、何らかのコンテンツを表示するというものであった。しかし実際には、このように静的なコンテンツを表示するのではなく、動的にコンテンツを書き換えるケースのほうが多いだろう。

 例えば、Webサービスを使った検索の例ならば、テキストボックスを用意して、検索語句が入力されたときにその検索語句で検索できるようにできるようにすべきであり、RSSフィードの表示例ならば、定期的に最新の情報を表示し直すことになるだろう。

 そのためには、ユーザー操作やタイマーなどによって、コンテンツの内容を変化させていく仕組みが必要になる。

 次回は、Liveガジェットにおけるイベント処理について説明する予定だ。

 なお、記事の最初でも触れたように、オンライン・ムックPlus「Windows Liveが魅せる次世代マッシュアップ」では、“Liveガジェットのアイデア募集”を行っている。読者から寄せられたアイデアは、本特集上で優秀作やアイデア傾向などを紹介していく予定だ(2006年3月まで募集)。

前のページへ 1|2|3|4|5       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ