解释转义的HTML

时间:2011-04-04 00:11:05

标签: html ruby-on-rails xml

我正在使用rails 3.0,我有一个xml文件,我存储了我的网页内容。因此,例如,要填写给定html页面的body部分,我使用ruby中的REXML方法提取标记的内容。

我想在此XML标记中存储带有HTML标记的内容。比如说,以下是我最喜欢的内容:

<body><strong>XXX</strong></body>

我将此文本插入其转义版本中,以便XML解析器不会将其解释为某些内容。

"&lt;strong&gt; XXX &lt;/strong&gt;"

运行seeds.rb文件,我正在将这些内容读入数据库并最终将其呈现为html页面。

我尝试了很多方法,我无法获得我想要的东西,即: XXX

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

另一种易于输出的原始内容

<%== @content.body %>

完全相同

<%= raw @content.body %>

它只是输出原始内容的简便方法

答案 1 :(得分:0)

尝试将html放在CDATA部分(未转义)中:

<xmlNode>
    <![CDATA[
    <body><strong>XXX</strong></body>
    ]]>
</xmlNode>

答案 2 :(得分:0)

解决了这个问题,在我的XML文件中,我将这些内容输入未转义为:

<body> <strong>XXX</strong> </body>

在我的seeds.rb文件中,我用:

读取节点的子节点

k.children[1].to_s

最后在控制器中,我将内容声明为.html_safe

<%= content_tag(:div, @content.body.html_safe) %>