Scala XML: create a node not using literals

2020-02-23 08:49发布

问题:

How can I create a node in Scala without using literals?

What I need is to set the node tag name in runtime, for example:

var tag = "post"
var content = "234"

How can I get a node <post>234</post>?

回答1:

scala> import xml._
import xml._

scala> def textElem(name: String, text: String) =  Elem(null, name, Null, TopScope, Text(text)) 
textElem: (name: String,text: String)scala.xml.Elem

scala> textElem("foo", "bar")                                                                   
res0: scala.xml.Elem = <foo>bar</foo>


回答2:

On Scala 2.8:

<xml>{content}</xml>.copy(label = tag)


标签: xml scala