开发者

Scala: XML Whitespace Removal?

Anyone know of a good scala library to do whitespace removal/compaction from XML?

<foo>
  <b开发者_如何学编程ar>hello world</bar>
  <baz>  xxx  </baz>
</foo>

to:

<foo><bar>hello world</bar><baz>xxx</baz></foo>


scala.xml.Utility.trim() should do what you want:

scala> val x = <foo>
     |   <bar>hello world</bar>
     |   <baz>  xxx  </baz>
     | </foo>
x: scala.xml.Elem = 
<foo>
         <bar>hello world</bar>
         <baz>  xxx  </baz>
       </foo>

scala> scala.xml.Utility.trim(x)
res0: scala.xml.Node = <foo><bar>hello world</bar><baz>xxx</baz></foo>


For whatever it's worth, this is what I've got going on now in the "roll my own" strategy:

def compactXml(xml: Node): Node = {
  (xml map {
    case Elem(prefix, label, attributes, scope, children @ _*) => {
      Elem(prefix, label, attributes, scope, children.map(compactXml(_)) :_*)
    }
    case Text(data) => Text(data.trim) 
    case x => x
  }).first
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜