« [userChrome.css] IE7 Throbber | nsIFeed から各種フィード情報を取得する » |
nsIFeedEntry から各種フィードエントリ情報を取得する
Firefox 2 に搭載された Feed content access API を使って、各種フィードエントリ情報を取得する。
以下、「entry」を nsIFeedEntry 型オブジェクトとする。
エントリのタイトル
フィードのタイトルと同様。
var title = entry.title.text;
エントリのパーマリンク
nsIFeedContainer の link プロパティは nsIURI 型を返す。
var parmaLink = entry.link.spec;
エントリの最終更新日
フィードの最終更新日と同様。
var lastUpdated = new Date(entry.updated);
エントリの本文
// RSS2.0の description タグで記述された内容を取得する var summary = entry.summary; // RSS2.0の content:encoded タグで記述された内容を取得する var content = entry.content; // node に対する DocumentFragment を生成する var docFrag = (content || summary).createDocumentFragment(node);
エントリの筆者
for (var i = 0; i < entry.authors.length; i++) { var author = entry.authors.queryElementAt(i, Components.interfaces.nsIFeedPerson); // 名前 var authorName = author.name; // E-mail var authorMail = author.email; // 関連 URI(多くの場合ホームページ) var authorURI = author.uri.spec; }
エントリのカテゴリ
nsIFeedContainer の categories プロパティは使えないようだ。その代わり、以下のようにすることで成功。
var categories = entry.fields.getProperty("categories").QueryInterface(Components.interfaces.nsIArray); for (var i = 0; i < categories.length; i++) { var category = categories.queryElementAt(i, Components.interfaces.nsIPropertyBag); // カテゴリ名称 var term = category.getProperty("term"); }