« nsIFeedEntry から各種フィードエントリ情報を取得する | menulist 要素内での menuitem-iconic クラス » |
nsIFeed から各種フィード情報を取得する
Firefox 2 に搭載された Feed content access API を使って、各種フィード情報を取得する。
以下、「feed」を nsIFeed 型オブジェクトとする。
フィードのタイトル
// マークアップされている場合にタグも含んだ文字列を取得する var feedTitle = feed.title.text; // マークアップされている場合にタグを除いた文字列として取得する var feedTitle = feed.title.plainText(); // マークアップされている場合に node に対する DocumentFragment として取得する var feedTitle = feed.title.createDocumentFragment(node);
フィードのサブタイトル
title, subtitle プロパティはともに nsIFeedTextConstruct 型を返すので、マークアップされている場合の取り扱いは title 同様。
var feedSubTitle = feed.subtitle.plainText();
フィードの最終更新日
nsIFeedContainer の updated プロパティは RFC822 形式の文字列を返すので、そのまま Date オブジェクトを生成することが可能。
var feedUpdated = new Date(feed.updated);
フィードの画像
RSS2.0 の image タグで記述されたフィードの画像を取得する。
var feedImage = feed.fields.getProperty("image").QueryInterface(Components.interfaces.nsIPropertyBag2); // 画像のURL feedImage.getPropertyAsAString("url"); // リンク先URL feedImage.getPropertyAsAString("link"); // タイトル feedImage.getPropertyAsAString("title");
リファレンス:
nsIFeed – MDC
nsIFeedContainer – MDC
nsIFeedTextConstruct – MDC
Interface Reference – nsIPropertyBag2