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

如何使用Python提取XML标签对应的父节点?

实现方案

xml.etree.ElementTree 本身没有自带父节点属性,我们可以先遍历整个XML树构建「元素-父元素」的映射字典,再生成你需要的父节点标签列表,具体代码如下:

import xml.etree.ElementTree as ET

tree = ET.parse(xml_path)
root = tree.getroot()

# 第一步:构建所有元素和对应父元素的映射字典
parent_map = {}
for parent in root.iter():
    for child in parent:
        parent_map[child] = parent

# 第二步:生成父节点标签列表
parents = []
for elem in root.iter():
    # 根节点没有父节点,对应填充你示例里的'\n',可根据需求调整
    parent_tag = parent_map[elem].tag if elem in parent_map else '\n'
    parents.append(parent_tag)

用你提供的示例XML测试,输出的parents列表和你给出的期望结果完全匹配:

  • 根节点<data>没有父节点,对应返回第一个值\n
  • 所有<country>元素的父节点是<data>,对应标签为data
  • 所有<rank>、<year>、<gdppc>、<neighbor>元素的父节点是<country>,对应标签为country

如果需要更简洁的写法,也可以把生成parents的过程改写为列表推导式:

parents = [parent_map.get(elem, type('Dummy', (), {'tag':'\n'})()).tag for elem in root.iter()]

内容的提问来源于stack exchange,提问作者Alexandre FG

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:45:02