2011-04-04 62 views
0

我正在使用rails 3.0,我有一个xml文件,用于存储我的网页内容。例如,为了填充给定html页面的主体部分,我使用ruby中的REXML方法提取标签的内容。解释已转义的html

我想在这个XML标签中存储带有HTML标签的内容。再说了,下面是我最喜欢的内容:

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

我将在其转义版本文本,以便XML解析器不会把它解释为一些内容。

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

运行seeds.rb文件,我读此内容数据库,并最终呈现为一个HTML页面。

我试过很多方法,我无法得到我想要的东西,即: XXX

感谢您的帮助。

+0

本网站 http://yehudakatz.com/2010/02/01/safebuffers-and-rails-3-0/ 这个问题 HTTP:/ /stackoverflow.com/questions/4251284/raw-vs-html-safe-vs-h-to-unescape-html 是有帮助的。 – NoNameNo 2011-04-04 00:38:02

回答

0

尝试把HTML一个CDATA段内(转义):

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

我已经尝试过你在这里提出的建议。并没有成功。实际上,只要字符串是在控制器中声明的.html_safe,它就不起作用。谢谢 – NoNameNo 2011-04-04 00:35:33

0

解决了这个问题,在我的XML文件,我有这样的内容进入转义,因为它是:

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

在我的seeds.rb文件中,我读到了节点的子节点:

k.children[1].to_s

终于在控制器中,我申报内容.html_safe

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

2

另一个容易输出的原始内容

<%== @content.body %>

这是完全一样的

<%= raw @content.body %>

它只是一个速记方法输出原始内容