|
maverick1965 -> Refreshing (8/22/2007 15:14:56)
|
Hi there, I'm trying to display an RSS feed from another site as HTML on a new site I'm developing. I found the following ASP code on the web. And it works fine, except for one thing. It displays the results on www.legalawards.co.uk/test3.asp as at the time I first uploaded that page. So even though the RSS feed has changed (and you can see that by copying and pasting in the rss feed page URL from the link in the code below), the test3.asp page doesn't update. So I guess the code below creates some kind of object on the server, which was created when I first uploaded the page. And now it isn't 'refreshing' that object, or deleting the old version? So each time I load that page, it still shows the results of the rss feed as it existed at the time I first uploaded the page. Any ideas anyone? Thanks in anticipation.... <% ' =========== RSS2HTML.ASP for ASP/ASP.NET ========== ' copyright 2005-2007 (c) www.Bytescout.com ' version 1.23, 14 June 2007 ' =========== configuration ===================== ' ##### URL to RSS Feed to display ######### URLToRSS = "http://www.legalsecretary.co.uk/rssfeed.asp?srcID=6&strLocations=&strCategories=&strCompanies=0&strKeywords=&strSearchMode=" ' ##### max number of displayed items ##### MaxNumberOfItems = 7 ' ##### Main template constants MainTemplateHeader = "<table>" MainTemplateFooter = "</table>" ' ##### ' ###################################### Keyword1 = "" ' Keyword1 = "tech" - set non-empty keyword value to filter by this keyword Keyword2 = "" ' Keyword1 = "win" - set non-empty keyword value to filter by this 2nd keyword too ' ################################# ' ##### Item template. ' ##### {LINK} will be replaced with item link ' ##### {TITLE} will be replaced with item title ' ##### {DESCRIPTION} will be replaced with item description ' ##### {DATE} will be replaced with item date and time ' ##### {COMMENTSLINK} will be replaced with link to comments (if you use RSS feed from blog) ' ##### {CATEGORY} will be replaced with item category ItemTemplate = "<tr><td> <font size=1>{DATE}<br/><a href=" & """{LINK}""" & ">{TITLE}</a><BR>{DESCRIPTION}</td></tr>" ' ##### Error message that will be displayed if not items etc ErrorMessage = "Error has occured while trying to process " &URLToRSS & "<BR>Please contact web-master" ' ================================================ Set xmlHttp = Server.CreateObject("MSXML2.XMLHTTP.3.0") xmlHttp.Open "Get", URLToRSS, false xmlHttp.Send() RSSXML = xmlHttp.ResponseText Set xmlDOM = Server.CreateObject("MSXML2.DomDocument.3.0") xmlDOM.async = False xmlDOM.validateOnParse = False xmlDom.resolveExternals = False If not xmlDOM.LoadXml(RSSXML) Then ErrorMessage = "Can not load XML:" & vbCRLF & xmlDOM.parseError.reason & vbCRLF & ErrorMessage End If Set xmlHttp = Nothing ' clear HTTP object Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS RSSItemsCount = RSSItems.Length-1 ' if not <item>..</item> entries, then try to get <entry>..</entry> if RSSItemsCount = -1 Then Set RSSItems = xmlDOM.getElementsByTagName("entry") ' collect all "entry" (atom format) from downloaded RSS RSSItemsCount = RSSItems.Length-1 End If Set xmlDOM = Nothing ' clear XML ' writing Header if RSSItemsCount > 0 then Response.Write MainTemplateHeader End If j = -1 For i = 0 To RSSItemsCount Set RSSItem = RSSItems.Item(i) for each child in RSSItem.childNodes Select case lcase(child.nodeName) case "title" RSStitle = child.text case "link" If RSSLink = "" Then If child.Attributes.length>0 Then RSSLink = child.GetAttribute("href") if (RSSLink <> "") Then if child.GetAttribute("rel") <> "alternate" Then RSSLink = "" End If End If End If ' if has attributes If RSSLink = "" Then RSSlink = child.text End If End If case "description" RSSdescription = child.text case "content" ' atom format RSSdescription = child.text case "published"' atom format RSSDate = child.text case "pubdate" RSSDate = child.text case "comments" RSSCommentsLink = child.text case "category" Set CategoryItems = RSSItem.getElementsByTagName("category") RSSCategory = "" for each categoryitem in CategoryItems if RSSCategory <> "" Then RSSCategory = RSSCategory & ", " End If RSSCategory = RSSCategory & categoryitem.text Next End Select next ' now check filter If (InStr(RSSTitle,Keyword1)>0) or (InStr(RSSTitle,Keyword2)>0) or (InStr(RSSDescription,Keyword1)>0) or (InStr(RSSDescription,Keyword2)>0) then j = J+1 if J<MaxNumberOfItems then ItemContent = Replace(ItemTemplate,"{LINK}",RSSlink) ItemContent = Replace(ItemContent,"{TITLE}",RSSTitle) ItemContent = Replace(ItemContent,"{DATE}",RSSDate) ItemContent = Replace(ItemContent,"{COMMENTSLINK}",RSSCommentsLink) ItemContent = Replace(ItemContent,"{CATEGORY}",RSSCategory) Response.Write Replace(ItemContent,"{DESCRIPTION}",RSSDescription) ItemContent = "" RSSLink = "" End if End If Next ' writing Footer if RSSItemsCount > 0 then Response.Write MainTemplateFooter else Response.Write ErrorMessage End If Response.End %>
|
|
|
|