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

Python ElementTree如何筛选包含insert子标签的XML标签并获取对应标签名

问题分析

你之前的代码无法得到输出的核心原因有两个:

  • <insert>是独立的XML子节点,不属于父节点的text属性内容,无法通过匹配父节点文本查找
  • Python原生等于判断不支持*通配符,你写的'*<insert>*'会被识别为普通字符串,需要完全匹配才会触发判断,自然没有结果
实现代码
import xml.etree.ElementTree as ET

# 解析XML文件,替换为你本地的XML文件路径
tree = ET.parse('test.xml')
root = tree.getroot()

# 用set存储符合条件的标签名,自动去重
target_tags = set()

# 遍历XML中所有节点
for elem in root.iter():
    # 检查当前节点的直接子节点中是否存在insert标签
    has_insert = any(child.tag == 'insert' for child in elem)
    if has_insert:
        target_tags.add(elem.tag)

# 转为列表使用
target_tag_list = list(target_tags)
print(target_tag_list)
输出示例

针对你提供的XML片段,运行后输出结果为:

['PostalAddressText', 'PersonNameText']

如果需要同时输出标签的内容,可在if has_insert的判断分支中添加print(elem.tag, ET.tostring(elem, encoding='unicode'))即可。

内容的提问来源于stack exchange,提问作者gtrosh.ka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:39:01