Si vous cherchez quelque chose hors de la boîte il y a quelques projets sur RIAForge, une recherche rapide élevé ces deux, mais je devine que vous pouvez trouver plus:
http://cfrss.riaforge.org/
http://rssville.riaforge.org/
Si vous êtes pour rouler votre propre (que je sais que vous avez dit que vous ne préférez pas), ne pourriez-vous faire une demande pour l'alimentation comme ceci:
<cfhttp
url = "http://example.com"
resolveurl="no"
throwOnError = "yes"
timeout = "10" >
</cfhttp>
et analysent les résultats:
<cfset feedData = CFHTTP.FileContent>
<cfset xmlData = XMLParse(feedData)>
Parcoure:
<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>
Sortie:
<cfoutput query="result">
<ul>
<li><strong>#title#</strong> - #description#</li>
</ul>
</cfoutput>
Il est évident que non testé, mais une idée quand même. Utilisé quelque chose de similaire à ceci pour obtenir mes derniers signets délicieux. En ce qui concerne la mise en cache, il existe plusieurs façons de gérer cela. J'exécuterais probablement une tâche planifiée pour frapper ce fichier et écrire la sortie dans un fichier séparé qui est inclus. Je suis sûr qu'il y a de meilleurs moyens, mais c'est le rapide n sale, imo.