Use AJAX to get an RSS Feed | Language: ASP | Server Side - JavaScript | Author: | Jon Lokken | Date: | 2-26-2008 | |
| Description: | View Example | This show how you can use AJAX to retrieve an RSS feed from an ASP page. This page shows the server page JavaScript portion with cross browser compatibility. |
<%@ LANGUAGE="JavaScript" %> <% Response.buffer=true %> <% /* * Get an RSS feed */ function getRssFeed(pathOfPage, pathOfStyle, pathOfSave, thisTime){ /* My Date */ var today = new Date(); var month = today.getMonth(); var day = today.getDate(); var year = today.getFullYear(); var hour = today.getHours(); var minute = today.getMinutes();
var objMyFSO= Server.CreateObject("Scripting.FileSystemObject"); var styleFilePath = Server.MapPath(pathOfStyle); var saveFilePath = Server.MapPath(pathOfSave); var doesFileExist = objMyFSO.FileExists(styleFilePath); var doesSaveFileExist = objMyFSO.FileExists(saveFilePath);
// Default Values var saveFileMinute = 0; var saveFileHour = 0; var saveFileDay = 0; var saveFileMonth = 0; var saveFileYear = 0;
// Get File Timing var myTime = "hour"; switch(thisTime){ case "minute": myTime = "minute"; break; case "hour": myTime = "hour"; break; case "day": myTime = "day"; break; case "month": myTime = "month"; break; case "year": myTime = "year" break; }
if(doesSaveFileExist){ var saveFile = objMyFSO.getFile(saveFilePath); var saveFileDate = new Date(saveFile.DateLastModified); saveFileMinute = saveFileDate.getMinutes(); saveFileHour = saveFileDate.getHours(); saveFileDay = saveFileDate.getDate(); saveFileMonth = saveFileDate.getMonth(); saveFileYear = saveFileDate.getFullYear(); }
if(doesFileExist){ var xmlObj = Server.CreateObject("Msxml2.DomDocument"); var xmlStyleObj = Server.CreateObject("Msxml2.DomDocument");
xmlObj.async = false; if(!doesSaveFileExist || (myTime == "minute" && ((minute - saveFileMinute) != 0)) || (myTime == "hour" && ((hour - saveFileHour) != 0)) || (myTime == "day" && ((day - saveFileDay) != 0)) || (myTime == "month" && ((month - saveFileMonth) != 0)) || (myTime == "year" && ((year - saveFileYear) != 0))){ try { xmlObj.setProperty("ServerHTTPRequest", true); xmlObj.load(pathOfPage); xmlObj.save(saveFilePath); } catch(e) { //Response.Write("Feed Exception:"+e); } } else { xmlObj.load(saveFilePath); }
xmlStyleObj.async = false; xmlStyleObj.load(styleFilePath);
xmlObj.transformNodeToObject(xmlStyleObj, Response);
} else { Response.Write("There was an error reading the rss feed."); } } %> <% getRssFeed("http://rss.news.yahoo.com/rss/topstories", "/includes/xsl/news2.xsl", "/includes/rssfeeds/news.xml", "minute") %>
Disclaimer: | Feel free to use this code I have written. I take no responsibility for this code working, imply no warranty as to it's validity, and will not be held liable if you decide to try it. I am only trying to help out others so they don't have to struggle with the same problems as me... | |