解析的xml文件:如果空白则跳过创建?

时间:2010-05-19 00:25:08

标签: ruby-on-rails ruby xml-parsing

这可能是一个特定于HappyMapper的问题,但我不这么认为。

在我的应用中,用户可以上传他们的博客订阅(通过OPML文件),我将其解析并添加到他们的个人资料中。唯一的问题是在解析期间,或者更具体地说是每个订阅的创建,我无法弄清楚如何跳过仅仅是“标签”的条目。

由于OPML文件允许您标记您的博客,或将它们组织到文件夹中,这是我的问题。实际的博客订阅及其标签都有“大纲”标签。

<outline text="Rails" >
<outline title="Katz Got Your Tongue?" text="Katz Got Your Tongue?" htmlUrl="http://yehudakatz.com" type="rss" xmlUrl="http://feeds.feedburner.com/KatzGotYourTongue" />

解析后,我通过HappyMapper模块内的方法调用创建每个feed

  def create_feed
    Feed.new( :feed_htmlUrl => self.htmlUrl, :feed_title => self.title, ...

但是,如何阻止它为那些仅仅是标签的轮廓标签创建新的“提要”? (即那些没有htmlUrl的人?)

1 个答案:

答案 0 :(得分:0)

我会试试这个:

Feed模型类中,我们使用before_create过滤器。如下:

class Feed < ActiveRecord::Base
  before_create :validate_attribute

  private

  def validate_attribute
    return false if self.htmlUrl.blank?
    # place more validation here
  end
end

这样做,只会创建满足validate_attribute的新记录。

希望它有所帮助。