Препятствование тому, чтобы Nokogiri вышел из символов?

Я создал текстовый узел и вставил в мой документ как так:

#<Nokogiri::XML::Text:0x3fcce081481c "<%= stylesheet_link_tag 'style'%>">]>

Когда я пытаюсь сохранить документ с этим:

File.open('ng.html', 'w+'){|f| f << page.to_html}

Я получаю это в фактическом документе:

&lt;%= stylesheet_link_tag 'style'%&gt;

Существует ли способ отключить выход и сохранить мою страницу с моими неповрежденными тегами erb?

Спасибо!

7
задан mikewilliamson 15 July 2010 в 11:57
поделиться

1 ответ

Вы обязаны экранировать некоторые символы в текстовых элементах, например:

"   &quot;
'   &apos;
<   &lt;
>   &gt;
&   &amp;

Если вы хотите, чтобы ваш текст дословно использовал секцию CDATA, поскольку все внутри секции CDATA игнорируется анализатором.

Пример Nokogiri:

builder = Nokogiri::HTML::Builder.new do |b|
  b.html do
    b.head do
      b.cdata "<%= stylesheet_link_tag 'style'%>"
   end
  end
end
builder.to_html

Это должно сохранить ваши erb-теги нетронутыми!

7
ответ дан 6 December 2019 в 11:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: