使用Ruby / Rails在RSS feed中生成iTunes XML节点

时间:2015-06-30 00:30:39

标签: ruby-on-rails xml rss itunes

问:如何使用Ruby / Rails生成特定于iTunes的XML节点?

尝试生成iTunes XML Feed,例如(基于example):

xml.instruct! :xml, :version => "1.0" 
xml.rss(:version => "2.0") do
  xml.channel do
    xml.title "Your Blog Title"
    xml.description "A blog about software and chocolate"
    xml.link posts_url

    @posts.each do |post|
      xml.item do
        xml.title post.title
        xml.description "Temporary post description"
        xml.pubDate post.created_at.to_s(:rfc822)
        xml.link post_url(post)
        xml.guid post_url(post)
      end
    end
  end
end

愉快地产生了类似的东西:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Your Blog Title</title>
    <description>A blog about software and chocolate</description>
    <link>https://pubweb-thedanielmay.c9.io/sermons</link>
    <item>
       ... omitted ...
    </item>
  </channel>
</rss>

但看起来我需要生成特定于iTunes的XML节点(例如Working With iTunes)。

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"> <-- *
  <channel>
    <title>Your Blog Title </title>
    ... omitted ...
    <itunes:subtitle>A program about everything</itunes:subtitle> <-- *
... etc ...

我不确定如何生成特定于iTunes的节点,因为它们中包含冒号。

标准RSS节点如下:

xml.item --> <item>

如何生成以下节点:

  • <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  • <itunes:author>

1 个答案:

答案 0 :(得分:0)

啊,根据代码通过Ryan Bates的令人敬畏的Railscasts RSS sample

回答
xml.rss "xmlns:itunes" => "http://www.itunes.com/dtds/podcast-1.0.dtd", :version => "2.0"

xml.itunes :author, author