Scala: удаление пробелов в XML? - PullRequest
40 голосов
/ 10 ноября 2009

Кто-нибудь знает хорошую библиотеку scala для удаления / сжатия пробелов из XML?

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

до:

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

Ответы [ 2 ]

62 голосов
/ 10 ноября 2009

scala.xml.Utility.trim () должен делать то, что вы хотите:

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>
2 голосов
/ 10 ноября 2009

Сколько бы это ни стоило, это то, что я сейчас делаю в стратегии «брось свои»:

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
}
...