最近想用Rails写一个类似lilina的东东,搜集了关于用Ruby解析及创建RSS的一些资源,原来Ruby自带了一个RSS解析器和生成器,这给我们带来了极大的方便。
Ruby RSS 解析
ruby 代码
- require 'rss/1.0'
- require 'rss/2.0'
- require 'open-uri'
-
- feed= "http://www.iteye.com/blog/rss_blog/41837"
- content = ""
- open(feed) do |s|
- content = s.read
- end
- rss = RSS::Parser.parse(content, false)
上面的代码会将feed中的XML下载并解析,解析后的内容保存在对象rss中,下面我们来操作该对象。
ruby 代码
- channel = rss.channel
- items = rss.items
-
- puts "频道信息"
- puts "标题: #{channel.title}"
- puts "链接: #{channel.link}"
- puts "描述: #{channel.description}"
- puts "更新时间: #{channel.date}"
- puts "文章数量: #{items.size}"
-
- for i in 0 ... items.size
- puts "----------- 文章#{i} -----------"
- puts "\t标题: #{items[i].title}"
- puts "\t链接: #{items[i].link}"
- puts "\t发表时间: #{items[i].date}"
- puts "\t内容: #{items[i].description}"
- end
对于RSS中channel和item的其它api操作,可以参照RSS的中文规范。
如果觉得上面的内容包含了太多的HTML字符,不方便查看的话,可以调用下面的to_html方法,将返回结果显示在view中。
ruby 代码
- class RSS::Rss
- def to_html
- max_description_length = 100
-
- html = "<h4><a href='#{channel.link}'>#{channel.title}</a></h4>"
- html << "<small>Updated on #{channel.date.strftime('%m/%d/%Y')}</small>" \
- if channel.date
- html << "<p>#{channel.description}</p>"
- html << "<ol>"
-
- channel.items.each do |i|
- html << "<li><strong><a href='#{i.link}'>#{i.title}</a></strong><br/>"
- html << "<small>Added on #{i.date.strftime("%m/%d/%Y")} at \
- #{i.date.strftime("%I:%M%p")}</small><br/>" if i.date
- desc_text = i.description.gsub(/<[^>]+>/,"").squeeze(" ").strip
- if desc_text.length > max_description_length
- desc_text = desc_text[0,max_description_length] + "…"
- else
- desc_text = i.description
- end
- html << "#{desc_text}"
- html << "</li>"
- end
-
- html << "</ol>"
- html
- end
- end
Ruby RSS 创建
创建RSS也非常容易,代码如下:
ruby 代码
- require 'rss/maker'
-
- version = "2.0"
- destination = "rss_cpc.xml"
-
- content = RSS::Maker.make(version) do |m|
- m.channel.title = "使用Ruby解析及创建RSS"
- m.channel.link = "http://cpccai.iteye.com"
- m.channel.description = "使用Ruby解析及创建RSS"
- m.items.do_sort = true
-
- i = m.items.new_item
- i.title = "使用Ruby解析RSS"
- i.link = "http://cpccai.iteye.com/blog/137941"
- i.date = Time.parse("2007/11/01 11:01")
-
- i = m.items.new_item
- i.title = "使用Ruby创建RSS"
- i.link = "http://cpccai.iteye.com/blog/137941"
- i.date = Time.now
- end
-
- File.open(destination,"w") do |f|
- f.write(content)
- end
运行后可以在文件所在目录找到生成的rss_cpc.xml文件。
参考文献:
1. Ruby RSS - Eating feeds tastefully
2. RSS教程 RSS基础知识及相关规范介绍
3. Ruby RSS相关网络资源 http://directory.fsf.org/project/rubyrss/ http://rubyforge.org/frs/?group_id=1624
分享到:
相关推荐
在过去的几年中,《Ruby on Rails Tutorial》这本书被视为介绍使用 Rails 进行 Web 开发的先驱者。 在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on ...
引用自Nathan Torkington的话:“使用Ruby on Rails就像观看功夫电影一样,看似弱小的新手框架却能够用各种创造性的方式打败众多强大的对手。”这句话生动地描述了Ruby on Rails的独特之处以及它在Web开发领域的影响...
使用Ruby on Rails最新版进行开发,开发者不仅可以享受到高效的开发流程,还能通过强大的社区支持和丰富的第三方库(如Gem)扩展其功能。例如,Devise用于用户认证,CanCanCan用于授权管理,Paperclip或Carrierwave...
Ruby on Rails是一款基于Ruby语言的开源Web开发框架,它遵循MVC(模型-视图-控制器)架构模式,简化了Web应用的开发流程。在Linux环境下安装Ruby on Rails需要一系列的依赖包和步骤,本资源包提供了所需的所有组件,...
【使用 Ruby on Rails 和 Eclipse 开发 iPhone 应用程序教程】是一个面向中级开发者的系列教程,旨在教读者如何利用 Ruby on Rails 框架在服务器端为 Mobile Safari 设计和提供自定义内容,以适应 iPhone 和 iPod ...
《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...
### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。
《Ruby on Rails for Dummies》这本书将引导读者从安装Ruby和Rails环境开始,逐步学习如何创建模型、视图和控制器(MVC架构),搭建数据库,使用路由系统,以及实现CRUD(Create, Read, Update, Delete)操作。...
Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...
Ruby on Rails使用ActiveRecord,一个ORM(对象关系映射)库,使得与数据库交互变得简单。你可以通过定义类和方法来创建、更新、查询数据。 3. **视图(Views)**:视图负责呈现用户界面。它们通常由HTML、CSS和...
《Ruby on Rails入门权威经典》是一本专门为初学者设计的指南,旨在帮助读者全面掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言的开源框架,以其“DRY(Don't Repeat ...
总的来说,Ruby on Rails实践涉及的知识点包括但不限于:Ruby语言基础、Rails框架结构、MVC模式、ActiveRecord、路由、测试驱动开发、插件和gem使用、以及部署策略。通过学习和实践,开发者能够快速构建功能丰富的...
Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用程序的开发。Rails由David Heinemeier Hansson于2004年创建,它提倡“约定优于配置...
Ruby on Rails 4 Tutorial 是一本深受开发者欢迎的书籍,它详细介绍了如何使用Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的开源框架,以其“约定优于配置”(Convention over ...
Ruby on Rails 安装及 MySQL 数据库配置指南 本文详细介绍了 Ruby on Rails 的安装步骤,以及 MySQL 数据库的配置方法,并提供了一些官方阅读资源。 一、Ruby on Rails 安装 Ruby on Rails 的安装可以分为以下几...
Ruby on Rails,简称Rails,是基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在使开发过程更加简洁高效。这个“ruby on rails 教程源码”很可能是为了辅助学习者深入理解Rails的...
Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,专为敏捷开发而设计,强调简洁的代码和“约定优于配置”的原则。它主要用于构建数据驱动的Web应用,借助于MVC(Model-View-Controller)...