Scala:如何从某个集合创建 XML 节点 [英] Scala: how to create XML nodes from some collection
本文介绍了Scala:如何从某个集合创建 XML 节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果你有类似的东西:
val myStuff = Array(Person("joe",40), Person("mary", 35))
如何使用该数据作为节点创建 XML 值?我知道如何在 XML 表达式中使用 {括号} 来放置一个值,但这是一个值的集合.我需要显式迭代还是有更好的方法?
How do you create an XML value with that data as nodes? I know how to use { braces } in an XML expression to put a value, but this is a collection of values. Do I need to iterate explicitly or is there something better?
val myXml = <people>{ /* what here?! */ }</people>
结果值应该类似于:
<people><person><name>joe</name><age>40</age></person>
<person><name>mary</name><age>39</age></person></people>
推荐答案
因为它是一种函数式编程语言,所以 Array.map 可能是您正在寻找的:
As it's a functional programming language Array.map is probably what you're looking for:
class Person(name : String, age : Int){
def toXml() = <person><name>{ name }</name><age>{ age }</age></person>
}
object xml {
val people = List(
new Person("Alice", 16),
new Person("Bob", 64)
)
val data = <people>{ people.map(p => p.toXml()) }</people>
def main(args : Array[String]){
println(data)
}
}
结果:
<people><person><name>Alice</name><age>16</age></person><person><name>Bob</name><age>64</age></person></people>
格式化结果(为了更好地阅读):
A formatted result (for a better read):
<people>
<person>
<name>Alice</name>
<age>16</age>
</person>
<person>
<name>Bob</name>
<age>64</age>
</person>
</people>
这篇关于Scala:如何从某个集合创建 XML 节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文