2011-04-01 12 views
7

Scala parece hacer dos cosas para XML que entras que hacen que sea no menos analizable pero que sea menos legible:Salida XML legible por humanos de Scala?

En primer lugar, se expande etiquetas que se cierran a sí mismos:

scala> <tag/> 
res109: scala.xml.Elem = <tag></tag> 

y segundo, se apresura atribuye en orden aleatorio, como si se las puso en un conjunto de hash:

scala> <tag a="a" b="b" c="c" d="d"/>   
res110: scala.xml.Elem = <tag d="d" a="a" c="c" b="b"></tag> 

Juntos, esos factores se confabulan para hacer XML considerablemente menos legible por humanos (al menos por mí). No estoy muy familiarizado con la biblioteca XML; ¿Hay alguna forma de realizar una traducción de xml a string que produzca una forma compacta legible para humanos? (Si no es así de forma predeterminada, al volver a generar y escribir las propias conversiones de cadenas, ¿o hay demasiados casos especiales que se ocultan allí?)

+0

"XML legible por humanos": ¡hecho mi día! – Raphael

Respuesta

6

En su mayoría, consulte scala.xml.Utility.toXml. Sin embargo, lo del atributo no tiene solución (hasta donde yo sé).

scala> xml.Utility.toXML(<a/>, minimizeTags = true) 
res13: StringBuilder = <a /> 

Es posible que desee mirar scala.xml.PrettyPrinter también.

+1

Es una pena sobre los atributos. Ese es el mayor problema con lo que estoy tratando de hacer. Quizás solo decida que nadie debería leer XML. –

+1

@Rex Anti-XML FTW. Creo que este es uno de los puntos que molestaron a Spiewak. Bueno, en realidad, todo sobre los atributos en scala.xml. –

+0

De hecho. Ya tengo PML en un grupo de operadores para hacer que trabajar con atributos sea medio manejable. –

Cuestiones relacionadas