如何从Python3 xml.etree.Element获取仅一级深度的子元素列表?
获取xml.etree.Element对象的一级子元素方法
完全可以获取Element仅一级深度的子元素,最简单的方式是直接遍历Element对象本身——xml.etree.Element对象默认的迭代行为就是仅遍历自己的直接子元素,不会递归到更深层级。
实现代码
import xml.etree.ElementTree as ET tree = ET.parse(PATH_TO_XML_FILE) root = tree.getroot() # 直接遍历root得到所有一级子元素 for child in root: print(child)
运行输出
<Element 'name' at 0x123abc> <Element 'SomeLevel1Element' at 0x123bbc> <Element 'SomeLevel1Element' at 0x123cbc> <Element 'AnotherLevel1Element' at 0x123dbc>
补充说明
- 如果需要将直接子元素转为列表保存,可使用:
direct_children_of_root = list(root) - 无需使用
findall()/find()方法:这类方法需要指定元素名称或XPath,而直接遍历无需提前知道子元素的数量和类型。 - 避免使用
iter()方法:该方法会递归遍历当前元素及所有后代元素,不符合仅获取一级子元素的需求。
内容的提问来源于stack exchange,提问作者superswellsam
相关产品推荐
相关产品推荐

