Scala:XML空白删除?

Scala:XML空白删除?,xml,scala,whitespace,Xml,Scala,Whitespace,有谁知道一个很好的scala库可以从XML中删除/压缩空白 <foo> <bar>hello world</bar> <baz> xxx </baz> </foo> 你好,世界 xxx 致: 你好,世界XXX 不管它值多少钱,这就是我现在在“滚我自己的”策略中所做的: def compactXml(xml: Node): Node = { (xml map { case Elem(prefix, label, attributes, s

有谁知道一个很好的scala库可以从XML中删除/压缩空白

<foo> <bar>hello world</bar> <baz> xxx </baz> </foo> 你好,世界 xxx 致:

你好,世界XXX
不管它值多少钱,这就是我现在在“滚我自己的”策略中所做的:

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 } def compactXml(xml:Node):节点={ (xml)地图{ 案例元素(前缀、标签、属性、范围、子项@*)=>{ 元素(前缀、标签、属性、作用域、子.map(compactXml()):*) } 案例文本(数据)=>Text(data.trim) 案例x=>x }).首先 } 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>
scala>val x=
|你好,世界
|xxx
| 
x:scala.xml.Elem=
你好,世界
xxx
scala>scala.xml.Utility.trim(x)
res0:scala.xml.Node=hello worldxxx

这看起来是一个很好的解决方案。为什么你需要一个库来完成你在7行中所做的事情?主要是因为我还没有确信我的代码是100%正确的。因为库是1行,它在标准库中。对不起。。。删除了我的答案。我现在可以看出这是完全错误的。我不应该一边读量子算符一边编程。
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>