You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取XML中所有带值的节点标签并将其存入列表?

问题原因

你当前的代码会将所有层级的节点标签都加入结果列表,包括Max_30e、Max_50e、Sample这类仅作为父容器、本身没有直接存储有效文本值的节点,因此会出现多余的元素。

解决代码

import xml.etree.ElementTree as ET

root = ET.fromstring(xml1)
values = []
# 递归遍历XML所有层级的节点
for node in root.iter():
    # 仅保留没有子节点的叶子节点(即直接存储值的节点)
    if len(node) == 0:
        values.append(node.tag)

print(values)

逻辑说明

root.iter() 会递归遍历根节点下所有层级的子节点,判断条件 len(node) == 0 可以筛选出没有子元素的叶子节点,这类节点就是你需要的带有实际值的节点,会自动过滤掉Max_30e、Sample这类父容器节点,运行后输出结果和你期望的完全一致。

内容的提问来源于stack exchange,提问作者Al-Andalus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:09:02