Convert an arbitrary string to xml in ruby Convert an arbitrary string to xml in ruby xml xml

Convert an arbitrary string to xml in ruby


In Ruby 1.9.2 to escape XML special characters in Strings, use the 'encode' method.

Example, if you have:

my_string = 'this is "my" complicated <String>'

For XML attributes use:

"<node attr=#{my_string.encode(:xml => :attr)} />"

Generates:

<node attr="this is "my" complicated <String>" />

For XML text use:

"<node>#{my_string.encode(:xml => :text)}</node>"

Generates:

<node>this is "my" complicated <String></node>


require 'rexml/document'doc = REXML::Document.newroot = doc.add_element "Alpha"root.add_text "now is & the < time > ' for \" me"doc.write

Produces:

<Alpha>now is & the < time > &apos; for " me</Alpha>


The CGI module has an escapeHTML method.

CGI.escapeHTML("&<>")#=> "&<>"