0

我正在学习 scala 并且在编写 xml 文件时遇到问题。

假设我有一个

case class Coordinate(x: Int, y: Int)

val l = List(Coordinate(1,3), Coordinate(2,4), Coordinate(3,5))

我需要使用以下格式打印一个 xml 文件:

<root>
  <object>
    <coord x="1" y="3"/>
    <coord x="2" y="4"/>
    <coord x="3" y="5"/>
  </object>
</root>`

我正在尝试以递归方式实现它,因此它将适用于大量坐标数据和多个

<object>.

我尝试先打印输出以检查结果:

def convertToXML(l: List[Coordinate]): Unit = {
  def eachCoordToXML(coord: Coordinate): scala.xml.Node = {
    <coord x={ coord.x.toString }  y={ coord.y.toString } />
  }

  val newObject =
    <object>
      { l.foreach(eachCoordToXML(_)) }
    </object>

  println(newObject.mkString)
}

结果是这样的

<object>

</object>

任何人都可以在这里指导我,我做错了什么?或者有没有更好/更有效的方法来递归编写 xml 节点?

4

1 回答 1

3

你做的一切都是对的!你只需要使用map而不是foreach

foreach在 scala 中返回Unit

于 2013-07-27T12:53:33.540 回答