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>
サンプル: