RSSフィードを表示する (XmlStore)
dojox. RSS2.0のフィード(XML)をXmlStoreを使い取得して表示します。
dojoのcoreのみでサンプルを作った際にDOMの操作性の悪さやIE7で表示されないなど問題があったので、今回、dojoxのdojox.data.XmlStoreを使ってRSS2.0のフィードをリスト表示します。
XmlStoreのメソッドfetchを使えば、フィルタリングや件数指定なども可能なので拡張性もあり、またRead APIを実装した他のデータストアと同様の操作性を持つのでデータの場所や形式を変更しても修正が楽だと思います。
<input type="button" value="GET"
onclick="rsslist({url:'/rss.xml'})"/>
<script>
function rsslist(opts) {
var settings = { url:'', entryclass:'target',
rootItem: "item", count: 5 };
//option target:'_blank' count:5
if (opts) for (var k in opts) settings[k] = opts[k];
dojo.require("dojox.data.XmlStore");
var store = new dojox.data.XmlStore(
{url: settings.url, rootItem: settings.rootItem}
);
var gotFeeds = function(items, request){
var target = '';
if (settings.target)
target = ' target="' + settings.target + '"';
var buffer = ["<ul>"];
for (var i = 0; i < items.length; i++){
var item = items[i];
buffer.push('<li><a href="' +
store.getValue(item, "link") +
'"' + target + '>' +
store.getValue(item, "title") + '</a></li>'
);
}
buffer.push("</ul>");
dojo.byId(settings.entryclass).innerHTML =
buffer.join("");
}
var request =
store.fetch({onComplete: gotFeeds,
count:settings.count});
}
</script>
<div id="target" style="border:1px solid #333"></div>
サンプル:
