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.



Gracias, me resulto de gran utilidad