蟒蛇代码:
import xml.etree.ElementTree as ET
root = ET.parse("h.xml")
print root.findall('saybye')
h.xml代码:
<hello>
<saybye>
<saybye>
</saybye>
</saybye>
<saybye>
</saybye>
</hello>
代码输出,
[<Element 'saybye' at 0x7fdbcbbec690>, <Element 'saybye' at 0x7fdbcbbec790>]
saybye
是另一个 saybye
的孩子,这里没有选择。那么,如何指示 findall 递归遍历 DOM 树并收集所有三个 saybye
元素?
原文由 user2879704 发布,翻译遵循 CC BY-SA 4.0 许可协议
引用
findall
,因为它只找到直接孩子,所以我们需要递归地找到其他孩子,就像这样
更好的是,让它成为一个生成器函数,就像这样