将元素追加为Anti-XML元素的子元素

假设我有一个 XML文档存储为Anti- XML Elem:
val root : Elem =
    <foo attr="val">
        <bar/>
    </foo>

.我想追加< baz> blahblahblah< / baz>作为孩子的根元素,给予

val modified_root : Elem =
    <foo attr="val">
        <bar/>
        <baz>blahblahblah</baz>
    </foo>

为了比较,在Python中你可以只使用root.append(foo).

我知道我可以使用:将(作为兄弟)添加到Group [Node]中,但这不是我想要的:

<foo attr="val">
    <bar/>
</foo>
<baz>blahblahblah</baz>

如何将其作为< foo>的最后一个子项追加?看the documentation我看不出明显的方法.

Scala XML Building: Adding children to existing Nodes类似,除了这个问题是针对Anti-XML而不是scala.xml.

Elem是 case class,所以你可以使用copy:
import com.codecommit.antixml._

val root: Elem = <foo attr="val"><bar/></foo>.convert
val child: Elem = <baz>blahblahblah</baz>.convert

val modified: Elem = root.copy(children = root.children :+ child)

复制方法automatically generated for case classes,它采用命名参数,允许您更改原始实例的任何单个字段.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念