默认的rails XML构建器会转义所有HTML,例如:

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

将生成文本:

<b>foo</b>

而不是: foo

有没有办法指示XML构建器不要转义XML?

有帮助吗?

解决方案

证明你需要做

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

虽然将它包装在CDATA中会阻止它工作。

其他提示

entry.content "type" => "html" do
    entry.cdata!(post.content)
end

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

  

特殊的XML字符<!> lt;,<!> gt;和<!> amp;转换为<!> lt;,<!> gt;和<!> amp;自动。使用<!> lt; <!> lt;插入文本而不进行修改的操作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top