从scala.xml.NodeSeq创建一个Map

tra*_*ory 3 scala scala-collections

我有以下xml节点:

val xml = <fields><field name="one"></field><field name="two"></field></fields>
Run Code Online (Sandbox Code Playgroud)

现在我想用field-name作为键创建Map [String,Node].

for{x <- xml \ "field"} yield Map(x \ "@name" -> x)
Run Code Online (Sandbox Code Playgroud)

使用上面的yi​​eld我得到了一个地图列表:

List(Map((one,<field name="one"></field>)), Map((two,<field name="two"></field>))) 
Run Code Online (Sandbox Code Playgroud)

我如何功能性地获取Map [String,Node]而不采用命令式方式(temp-vars)将List中的Maps转换为最终所需的Map,可能没有收益?

The*_*aul 5

  xml \ "field" map { x => ((x \ "@name").text -> x) } toMap
Run Code Online (Sandbox Code Playgroud)