Scala的人类可读XML输出?

时间:2011-04-01 15:13:02

标签: xml scala

Scala似乎对你输入的XML做了两件事,这使得它不再可解析,但却使其可读性降低:

首先,它扩展了自我关闭的标签:

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

其次,它将属性变为随机顺序,就好像它将它们放入哈希集中一样:

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

总之,这些共同导致XML的可读性大大降低(至少在我看来)。我对XML库不是很熟悉;有没有办法执行xml到字符串的转换,产生一个紧凑的人类可读形式? (如果不是默认情况下,通过递归和编写自己的字符串转换 - 或者是否有太多特殊情况潜伏在那里?)

1 个答案:

答案 0 :(得分:6)

大多数情况下,请参阅scala.xml.Utility.toXml。虽然属性事物没有解决方案(据我所知)。

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

您也可以查看scala.xml.PrettyPrinter