2013-07-27 51 views
0

我在學習scala並且在編寫xml文件時遇到了問題。在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節點?

回答

3

你一切正常!您只需要使用map而不是foreach

foreach in scala returns Unit