如果我有一個可能包含任何字符(包括'/','&'等等)的字符串,那麼如何將其安全地轉換爲可以像這樣存儲的XML:在ruby中將任意字符串轉換爲xml
<myelement>mystring</myelement>
它是否需要CDATA,或者我可以使用ruby函數輕鬆轉換它嗎?
如果我有一個可能包含任何字符(包括'/','&'等等)的字符串,那麼如何將其安全地轉換爲可以像這樣存儲的XML:在ruby中將任意字符串轉換爲xml
<myelement>mystring</myelement>
它是否需要CDATA,或者我可以使用ruby函數輕鬆轉換它嗎?
在Ruby 1.9.2中爲了轉義字符串中的XML特殊字符,使用'encode'方法。
例如,如果您有:
my_string = 'this is "my" complicated <String>'
對於XML屬性使用:
"<node attr=#{my_string.encode(:xml => :attr)} />"
生成:
<node attr="this is "my" complicated <String>" />
對於XML文本使用:
"<node>#{my_string.encode(:xml => :text)}</node>"
生成:
<node>this is "my" complicated <String></node>
CGI模塊有一個escapeHTML方法。
CGI.escapeHTML("&<>")
#=> "&<>"
我認爲專門使用XML轉義而不是HTML轉義方法更好。如果提供更多的細節來解決這個問題,那麼 – fatuhoku 2016-09-02 13:31:47
require 'rexml/document'
doc = REXML::Document.new
root = doc.add_element "Alpha"
root.add_text "now is & the <time> ' for \" me"
doc.write
產地:
<Alpha>now is & the < time > ' for " me</Alpha>
有紅寶石圖書館稱爲REXML來處理XML。 它可能對你所需要的有用。這是一個教程的鏈接。 http://www.germane-software.com/software/rexml/docs/tutorial.html
會更好。 – soubunmei 2015-06-04 12:48:00
什麼樣的事情了mystring? – 2009-09-18 11:05:14
對不起,喬納斯,我把XML放在文本中,它被刪除;學過的知識;必須把它放在代碼塊中;-) – cmaughan 2009-09-18 11:21:08