说我有一个属性元组列表:
val list = List(("name", "myname"), ("id", "1"))
然后我将如何动态生成XML元素:
<elem name='myname' id='1'/>
答案 0 :(得分:0)
在Scala中使用XML的标准接口不是很方便。属性存储在链表xml.MetaData
中(实际上不是List
或任何类型的集合)。因此,您必须折叠列表才能生成此MetaData
。在那之后,我认为使用它制作元素的最简单方法是使用%
运算符。构造元素的另一种方法是将此MetaData
传递给xml.Elem
构造函数。
val list = List(("name", "myname"), ("id", "1"))
val attributeList = list.foldLeft(xml.Null: xml.MetaData) {
case (metadata, (key, value)) => xml.Attribute(None, key, xml.Text(value), metadata)
}
val elem = <elem/> % attributeList