Вопрос

Rails XML builder по умолчанию экранирует весь 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>

вместо того, чтобы: фу

Есть ли какой-нибудь способ проинструктировать XML builder не экранировать 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 <, >, и & преобразуются в <, > и & автоматически.Используйте << операция по вставке текста без изменений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top