如何合并两个xml.Elem vals?

时间:2018-03-06 13:43:27

标签: xml scala merge functional-programming

我有两个xml.Elem值,我需要将一个作为子项插入另一个节点。详细地说,这意味着:

val a = <p id="s" name="S">
    <sE id="st" name="St"></sE>
    <sProcess id="s_process" name="SP"></sProcess>
  </p>

val b = <p id="e" name="S">
    <sE id="dd" name="DD"></sE>
    </p>

我需要将标记为Elem b的节点中的所有Childs作为子节点插入到Elem中标记为sProcess的节点。因此,在应用此之后,它看起来像这样:

val a = <p id="s" name="S">
<sE id="st" name="St"></sE>
<sProcess id="s_process" name="SP">
 <sE id="dd" name="DD"></sE></sProcess>
</p>

我的方法到现在为止:

a.foreach(n => ...)

但这仅访问标记为p的节点

1 个答案:

答案 0 :(得分:0)

如果你使用b.child()方法,它会给你一个Seq[Node]来自Node labled p的所有Childs。然后,您可以使用函数作为类型将val a的定义更改为函数。

val a : Seq[Node] => Elem = (x:Seq[Node]) => <p id="s" name="S">
    <sE id="st" name="St"> {x} </sE>
    <sProcess id="s_process" name="SP"></sProcess>
  </p>