Ruby convierte comillas simples a comillas dobles en XML

A pesar de que los atributos XML se pueden definir con comillas simples o dobles, mi usuario está tratando de integrar mi software con otro que no acepte valores de atributos con comillas simples.

Yo utilizo REXML para generar mis XMLs.

¿Hay alguna manera de que REXML genere valores de atributo entre comillas dobles? Si no es así, ¿hay alguna manera de convertirlo fácilmente?

Gracias

A partir de febrero de 2007, hay una forma compatible de determinar el carácter de cita. Los cambios se fusionaron en las fonts de Ruby en julio de 2007 y deberían estar disponibles en todas las versiones desde la versión 1.8.6-p110:

require 'rexml/document' doc = REXML::Document.new doc.context[:attribute_quote] = :quote # <-- Set double-quote as the attribute value delimiter root = doc.add_element('root') root.add_attribute('val', '123') doc.write(STDOUT) 

Ejecución que rinde:

 $ ruby test.rb  $ 

He visto este código alrededor para hacer esto. Pero es de una publicación de la lista de correo de 2003 que también promete una forma más elegante (y compatible) de hacerlo. Puede que no sea el mejor, pero podría funcionar, inténtalo.

 REXML::Attribute.class_eval( %q^ def to_string %Q[#@expanded_name="#{to_s().gsub(/"/, '"')}"] end ^ ) 
    Intereting Posts