CFLib.org – Common Function Library Project

cfRssFeed(feedURL)

Last updated May 11, 2006
Download UDF

author

Jose Diaz-Salcedo                                 Jose Diaz-Salcedo

Version: 1 | Requires: ColdFusion MX | Library: StrLib

Description:
This UDF display's a rss feed to a web browser, in a readable format.

Return Values:
Returns a query.

Example:

<cfinclude template="rssfeedUdf.cfm">

<cfset rssFeed = cfRssFeed("http://news.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml")>

<font face="arial" size="2">
<ul>
<cfoutput query="rssFeed">
<li><b><a href="#link#">#title#</a></b> - #description#</li><br>
</cfoutput>
</ul>
</font>

Parameters:

Name Description Required
feedURL RSS URL. Yes

Full UDF Source:

<!---
Display rss feed.
Changes by Raymond Camden

@param feedURL      RSS URL. (Required)
@return Returns a query.
@author Jose Diaz-Salcedo (bleachedbug@gmail.com)
@version 1, May 11, 2006
--->

<cffunction name="cfRssFeed" access="public" returntype="query" output=false>
    <cfargument name="feedUrl" type="string" required="true"/>
    <cfset var news_file = arguments.feedurl>
    <cfset var rss = "">
    <cfset var items = "">
    <cfset var rssItems = "">
    <cfset var i = "">
    <cfset var row = "">
    <cfset var title = "">
    <cfset var link = "">
    
    <cfhttp url="#news_file#" method="get" />
    
    <cfset rss = xmlParse(cfhttp.filecontent)>

    <cfset items = xmlSearch(rss, "/rss/channel/item")>
    <cfset rssItems = queryNew("title,description,link")>

    <cfloop from="1" to="#ArrayLen(items)#" index="i">
        <cfset row = queryAddRow(rssItems)>
        <cfset title = xmlSearch(rss, "/rss/channel/item[#i#]/title")>

        <cfif arrayLen(title)>
            <cfset title = title[1].xmlText>
        <cfelse>
            <cfset title="">
        </cfif>

        <cfset description = XMLSearch(items[i], "/rss/channel/item[#i#]/description")>

        <cfif ArrayLen(description)>
            <cfset description = description[1].xmlText>
        <cfelse>
            <cfset description="">
        </cfif>

        <cfset link = xmlSearch(items[i], "/rss/channel/item[#i#]/link")>

        <cfif arrayLen(link)>
            <cfset link = link[1].xmlText>
        <cfelse>
            <cfset link="">
        </cfif>

        <cfset querySetCell(rssItems, "title", title, row)>
        <cfset querySetCell(rssItems, "description", description, row)>
        <cfset querySetCell(rssItems, "link", link, row)>

    </cfloop>

    <cfreturn rssItems />

</cffunction>

Search CFLib.org


Latest Additions

Raymond Compton Raymond Compton added
structBlend
19 day(s) ago

Duncan Duncan added
IsZIPUK
19 day(s) ago

Todd Sharp Todd Sharp added
getTagContentAll
25 day(s) ago

Gerald Guido Gerald Guido added
ListReturnDuplicat...
1 month(s) ago

Gerald Guido Gerald Guido added
ListReturnDuplicat...
1 month(s) ago

Created by Raymond Camden / Design by Justin Johnson