我正在努力使用库anti-xml替换另一个XML元素。例如,我有:
<root>
<sub>
<keep />
<replace />
<keeptoo />
</sub>
</root>
和片段:
<inserted key="value">
<foo>foo</foo>
<bar>bar</bar>
</inserted>
我想制作:
<root>
<sub>
<keep />
<inserted key="value">
<foo>foo</foo>
<bar>bar</bar>
</inserted>
<keeptoo />
</sub>
</root>
注意:必须保留<sub>
名儿童的顺序。
答案 0 :(得分:3)
首先我们定义根文档:
val root =
<root>
<sub>
<keep />
<replace />
<keeptoo />
</sub>
</root>.convert
val inserted =
<inserted key="value">
<foo>foo</foo>
<bar>bar</bar>
</inserted>.convert
然后我们得到元素:
val replace = root \\ 'replace
最后我们得到了更新的<replace/>
节点的xml:
replace.updated(0, inserted).unselect
如果我们获得多个<replace/>
个节点,我们将能够迭代replace
来更新每个节点。
答案 1 :(得分:2)
您可以使用flatMap
将所选元素替换为多个节点,例如replace.flatMap(_ => someListOfNodes).unselect
(很抱歉单独给出答案,我似乎无法对现有答案发表评论。)