「/」、「&」などの文字を含む文字列があれば、どのようにしてXMLに安全に変換できますか?任意の文字列をルビーのxmlに変換する
<myelement>mystring</myelement>
CDATAである必要がありますか、それとも簡単にルビ関数を使用して変換できますか?
「/」、「&」などの文字を含む文字列があれば、どのようにしてXMLに安全に変換できますか?任意の文字列をルビーのxmlに変換する
<myelement>mystring</myelement>
CDATAである必要がありますか、それとも簡単にルビ関数を使用して変換できますか?
Ruby 1.9.2では、文字列のXML特殊文字をエスケープするには、 'encode'メソッドを使用してください。 XMLは使用属性
my_string = 'this is "my" complicated <String>'
について:
例は、あなたが持っている場合
"<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("&<>")
#=> "&<>"
HTMLエスケープメソッドではなくXMLエスケープを使用する方がよいと思います。 – fatuhoku
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>
は、XMLを扱うためのREXMLと呼ばれるルビーでライブラリがあります。 これは必要なものに役立つかもしれません。ここにチュートリアルへのリンクがあります。 http://www.germane-software.com/software/rexml/docs/tutorial.html
は、問題を解決するために提供されたより詳細な方が良いでしょう。 – soubunmei
好きなもののMyString? –
申し訳ありません、Jonas、私はテキストにxmlを入れて、削除されました。学んだ教訓;コードブロックに配置する必要がありました;-) – cmaughan