Wenn Sie etwas aus der Box gibt es ein paar Projekte auf RIAForge, eine schnelle Suche brachte diese beiden suchen, aber ich vermute, Sie mehr finden konnte:
http://cfrss.riaforge.org/
http://rssville.riaforge.org/
Wenn Sie Ihre eigenen sind bis zum Walzen (was ich weiß, Sie sagten, Sie lieber nicht), könnte man nicht nur eine Anfrage, wie so für das Futter machen:
<cfhttp
url = "http://example.com"
resolveurl="no"
throwOnError = "yes"
timeout = "10" >
</cfhttp>
und analysieren die Ergebnisse:
<cfset feedData = CFHTTP.FileContent>
<cfset xmlData = XMLParse(feedData)>
Schleife durch:
<cfset result = queryNew("title,description")>
<cfset items = xmlSearch(xmlData,"//*[local-name() = 'item']")>
<cfloop index="x" from="1" to="#arrayLen(items)#">
<cfif structKeyExists(items[x],"title")>
<cfset node.title = items[x].title.XmlText>
<cfelse>
<cfset node.title = "">
</cfif>
<cfif structKeyExists(items[x],"description")>
<cfset node.description = items[x].description.XmlText>
<cfelse>
<cfset node.description = "">
</cfif>
<cfset queryAddRow(result)>
<cfset querySetCell(result,"title",node.title)>
<cfset querySetCell(result,"description",node.description)>
</cfloop>
Ausgang:
<cfoutput query="result">
<ul>
<li><strong>#title#</strong> - #description#</li>
</ul>
</cfoutput>
Offensichtlich nicht getestet, aber dennoch eine Idee. Benutzte etwas ähnliches, um meine neuesten leckeren Lesezeichen zu bekommen. Was das Caching betrifft, gibt es ein paar verschiedene Möglichkeiten, damit umzugehen. Ich würde wahrscheinlich eine geplante Aufgabe ausführen, um diese Datei zu treffen und die Ausgabe in eine separate Datei zu schreiben, die enthalten ist. Ich bin mir sicher, dass es bessere Wege gibt, aber das ist das schnelle n dreckig, imo.