2

迭代这个没有问题:

<entries>
    <entry>
    <name>Kitten</name>
    <special>Yup</special>
    </entry>
    <entry>
    <name>Gato</name>
    <special>Nope</special>
    </entry>
</entries>

用这种方法

for(entry <- data)
...

但是现在当我尝试在一个条目中迭代时

IE:

<entry>
<name>Kitten</name>
<special>Yup</special>
</entry>

我实际上不能通过名称然后继续进行特殊处理,它只是将此节点视为一个项目并且只经历一个周期。我如何通过每一个元素?

4

2 回答 2

3

用一种child方法,也许?

例如,

for (bar <- <foo><bar><kv/></bar><bar><kv/></bar></foo>.child; kv <- bar.child) {println (kv)}

印刷

<kv/>
<kv/>
于 2013-07-09T14:30:15.380 回答
3

如果你想要一个来自根的子元素列表,无论深度如何,你都可以这样做:

val elems = xml.descendant.collect{case e:Elem => e}

结果elems将是一个List[Elem]代表根的任何孩子Elem

于 2013-07-09T15:33:18.247 回答