XStream y XmlFriendlyReplacer. Adiós a los dobles guiones bajos (double underscores)


En un post anterior que hablamos sobre XStream, uno de los comentarios trataba sobre el problema de las variables que contienen un guión bajo “_” (underscore) en el nombre, p.e: num_max, num_min, …

Nos decía que a la hora de generar el XML, XStream generaba los tag XML con doble guien bajo “__” (double underscore), p.e: <num_max>, <num_min>, …

Esto se debe a que algunas variables pueden contener el signo $. Como XStream realiza un mapeo 1:1 entre variables y campos XML, el carácter $ no es válido en XML y por tanto lo sustituye por carácter, por defecto utiliza el guión bajo (underscore). Para más info acceder a este link.

Para poder indicar que carácteres de sustitución para el $ (dollar) y el “_” (underscore) queremos utilizar, XStream nos proporciona la clase XmlFriendlyReplacer. Por defecto:

  • El carácter $ (dollar) es sustituido por _ (underscore)
  • El caracter _ (underscore) es sustituido por __ (double underscores)

En código la solución es la siguiente:

XmlFriendlyReplacer replacer = new XmlFriendlyReplacer(”$”, “_”);  

XStream xstream = new XStream(new DomDriver(”UTF-8″, replacer));

Y adiós a los doubles guiones bajos.

Salu2. Héctor.

Información y enlaces

Participa comentando, viendo lo que otros tienen que decir, o enlazandolo desde tu blog.


Otros Posts

Escriba un comentario

Tomate un momento para comentar y contar lo que piensas sobre el post. Puedes usar un HTML b´sico para formatear.

Comentarios leidos

Gracias, me resulto de gran utilidad

Muchas gracias. Me ha servido para arreglar este problema.
Ahora XmlFriendlyReplacer está Deprecated.
Ahora se utiliza XmlFirendlyNameCoder.

Un saludo



Switch to our mobile site