8

The default rails XML builder escapes all HTML, so something like:

atom_feed do |feed|  
  @stories.each do |story|  
    feed.entry story do |entry|   
      entry.title story.title
      entry.content "<b>foo</b>"
    end  
  end  
end

will produce the text:

<b>foo</b>

instead of: foo

Is there any way to instruct the XML builder to not escape the XML?

Dan Lowe
  • 51,713
  • 20
  • 123
  • 112
Shalmanese
  • 5,254
  • 10
  • 29
  • 41

3 Answers3

10

turns out you need to do

entry.content "<b>foo</b>", :type => "html"

althought wrapping it in a CDATA stops it working.

Shalmanese
  • 5,254
  • 10
  • 29
  • 41
9
entry.content "type" => "html" do
    entry.cdata!(post.content)
end
Ulf Gjerdingen
  • 1,414
  • 3
  • 16
  • 20
Rodrigo
  • 91
  • 1
  • 1
0

http://builder.rubyforge.org/classes/Builder/XmlMarkup.html

The special XML characters <, >, and & are converted to <, > and & automatically. Use the << operation to insert text without modification.