Вы должны создать Elem
с именем elemName
вручную с помощью метода Elem.apply
:
import xml._
val body = <body />
val elemName = "elemName"
val elem =
Elem(prefix = null,
label = elemName,
attributes = Null,
scope = TopScope,
minimizeEmpty = true,
body)
<someXml>{elem}</someXml>
// <someXml>{elem}</someXml>
С атрибутами:
val attrs =
List("k1" -> "v1", "k2" -> "v2").reverse.
foldLeft(Null: MetaData){ case (as, (k, v)) =>
new UnprefixedAttribute(k, v, as)
}
val elem =
Elem(prefix = null,
label = elemName,
attributes = attrs,
scope = TopScope,
minimizeEmpty = true,
body)
<someXml>{elem}</someXml>
// <someXml><elemName k1="v1" k2="v2"><body/></elemName></someXml>
С xmlns
:
val elem =
Elem(prefix = null,
label = elemName,
attributes = Null,
scope = NamespaceBinding(null, "http://myUrl", TopScope),
minimizeEmpty = true,
body)
<someXml>{elem}</someXml>
// <someXml><elemName xmlns="http://myUrl"><body/></elemName></someXml>
жалуется. Вы уверены, что это не {Elem (null, elemName, Null, Null, body)}? –
@Alex: работает для меня в REPL '2.9.3' и в' 2.10.1'. – senia
Кроме того, я нашел свое определение, но не могу понять, как передать ему атрибуты. Не могли бы вы помочь мне в этом? –