Scala:XML空白删除?
有谁知道一个很好的scala库可以从XML中删除/压缩空白 <foo> <bar>hello world</bar> <baz> xxx </baz> </foo> 你好,世界 xxx 致: 你好,世界XXXScala: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
不管它值多少钱,这就是我现在在“滚我自己的”策略中所做的: 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>