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

如何用Python的ElementTree提取XML文件中的指定字段值?

解决Python提取XML中指定属性Field值的问题

我来帮你搞定这个问题!你的代码输出全是“Nothing”,核心原因是对XML结构的查找逻辑出错了——咱们先看你的XML结构:每个<Field>元素是通过Name属性来标识类型的(比如Name="Filename"),而不是存在一个名为<Filename>的子元素,所以你用each.find('.//Filename')根本找不到匹配的内容。

下面给你两种可行的修正方案:

方案一:用XPath直接筛选目标Field

这种方法最简洁,直接通过XPath表达式定位所有Name属性为Filename的<Field>元素:

import xml.etree.ElementTree as ET
xml_file = 'C:/Users/ClientMD/Downloads/MC Librarytest.xml'
tree = ET.parse(xml_file)
root = tree.getroot()

# 使用XPath筛选Name属性等于Filename的Field元素
for filename_field in root.findall(".//Field[@Name='Filename']"):
    print(filename_field.text)

方案二:遍历Item后判断Field属性

如果需要同时处理其他Field(比如Artist、Album),这种遍历判断的方式更灵活:

import xml.etree.ElementTree as ET
xml_file = 'C:/Users/ClientMD/Downloads/MC Librarytest.xml'
tree = ET.parse(xml_file)
root = tree.getroot()

# 先遍历每个Item节点
for item in root.findall('Item'):
    # 再遍历Item下的所有Field
    for field in item.findall('Field'):
        # 检查当前Field的Name属性是否为Filename
        if field.get('Name') == 'Filename':
            print(field.text)

运行任意一种代码,都会输出你想要的两个文件路径:

Y:\Styx\08 - Styx - Snowblind8. Snowblind.flac
Y:\David Gilmour\04 A Boat Lies Waiting.flac

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:01:48