Подтвердить что ты не робот

Scala: удаление пробелов XML?

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

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

в

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

Ответ 1

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

Что бы это ни стоило, это то, что я сейчас начал в стратегии "сворачивать свою собственную":

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
}