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

如何用Python提取XML文件中map标签的value属性值?

提取XML中标签的value属性列表

需求说明

需要从较长的XML文件中提取所有<map>标签的key和value属性,最终目标是生成所有value属性值的列表,示例值如下:

  • [companyx.dm.ss.ply.zut/CV_item_info_title].[cooAD]
  • [companyx.dm.ss.ply.code/CV_item_code].[AF_COLOR]

此前尝试用pandas读取XML未成功,无法识别key和value属性;使用etree.ElementTree也未实现需求,以下是可行的解决方案。

解决方案:使用Python标准库xml.etree.ElementTree

Python的xml.etree.ElementTree是处理XML的标准工具,能精准定位并提取目标标签的属性,无需额外安装依赖。

代码实现

import xml.etree.ElementTree as ET

# 解析本地XML文件
tree = ET.parse("your_file.xml")
root = tree.getroot()

# 若处理XML字符串(比如你提供的样本片段),替换为以下代码:
# xml_content = """你的XML完整字符串内容"""
# root = ET.fromstring(xml_content)

# 提取所有<map>标签的value属性
value_list = []
for map_tag in root.findall('.//map'):
    value = map_tag.get('value')
    if value:  # 过滤无value属性的标签
        value_list.append(value)

# 输出结果
for item in value_list:
    print(item)

代码说明

  • root.findall('.//map'):通过XPath表达式递归查找XML中所有层级的<map>标签,不受父节点位置限制。
  • map_tag.get('value'):获取当前<map>标签的value属性值,若标签无该属性则返回None,通过if value过滤无效项。
  • 最终value_list即为所有符合要求的value属性值集合,可直接用于后续业务处理。

样本测试结果

将你提供的XML片段传入上述代码,会输出以下内容:

[companyx.dm.ss.ply.zut/CV_item_info_ind].[cooAD]
[companyx.dm.ss.ply.zut/CV_item_info_title].[cooAD]
[companyx.dm.ss.ply.code/CV_item_code].[AF_COLOR]
[companyx.dm.ss.ply.code/CV_item_code].[AF_FCOCO]
[companyx.dm.ss.ply.code/CV_item_code].[AF_GENDER]
[companyx.dm.ss.ply.code/CV_item_code].[AF_GRID]
[companyx.dm.ss.ply.code/CV_item_code].[AF_STYLE]
[companyx.dm.ss.ply.zut/CV_item_info_ind].[AKTNR]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:34:56