2011-04-04 63 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 %>

它只是一個速記方法輸出原始內容