迭代这个没有问题:
<entries>
<entry>
<name>Kitten</name>
<special>Yup</special>
</entry>
<entry>
<name>Gato</name>
<special>Nope</special>
</entry>
</entries>
采用这种方法
for(entry <- data)
...
但现在我尝试在一个条目中进行迭代
即:
<entry>
<name>Kitten</name>
<special>Yup</special>
</entry>
我实际上无法通过名称然后继续进行特殊处理,它只是将此节点视为一个项目,并且只经历一个周期。我如何浏览每一个元素?
答案 0 :(得分:3)
使用child
方法,或许?
例如,
for (bar <- <foo><bar><kv/></bar><bar><kv/></bar></foo>.child; kv <- bar.child) {println (kv)}
打印
<kv/>
<kv/>
答案 1 :(得分:2)
如果你想要一个来自root的子元素列表,无论深度如何,那么你可以这样做:
val elems = xml.descendant.collect{case e:Elem => e}
结果elems
将是List[Elem]
,表示来自根目录的任何子Elem
。