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

使用xml.etree.ElementTree提取XML中指定name对应value的实现方法

实现方案

你可以直接通过节点的父子关系定位到对应value节点,以下是两种可用的实现方式:

方式1(更推荐,逻辑更清晰)

遍历每一组<header>节点,分别取出内部的name和value节点匹配判断,避免节点顺序变化导致的取值错误:

import xml.etree.ElementTree as ET

# 加载XML文件获取根节点(如果已有root_node可跳过这两步)
tree = ET.parse("你的XML文件路径")
root_node = tree.getroot()

for header in root_node.iter("header"):
    name_node = header.find("name")
    value_node = header.find("value")
    # 增加判空逻辑避免部分节点缺失导致报错
    if name_node and name_node.text == "mykey" and value_node:
        print(value_node.text)

方式2(在你现有代码基础上修改)

拿到匹配的name节点后,先获取它的父节点<header>,再从父节点下查找value节点即可:

import re

for name in root_node.iter("name"):
    if re.match(r"mykey", name.text):
        # 从name节点的父节点查找对应value
        value_node = name.getparent().find("value")
        if value_node:
            print(value_node.text)

补充说明:如果你的匹配规则就是name文本严格等于mykey,可以直接用name.text == "mykey"替换正则匹配,效率更高且不会误匹配到以mykey为前缀的其他值。

内容的提问来源于stack exchange,提问作者Bruce Banner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:09:01