Python读取XML节点与属性值实战:解析ElementTree用法

宋时安
宋时安
发布时间:2026-10-15| 4人浏览过
原创

本文通过Python面试题案例,演示如何使用xml.etree.ElementTree模块读取XML文件。重点讲解parse函数加载文档及iterfind方法遍历子节点,结合findtext与get方法获取节点文本及属性值,实现数据的高效提取与分析。

面试题

假设存在一个名为test.xml的文件,任务要求提取该文件中products节点下所有子节点的文本内容,同时获取这些子节点对应的属性值。

test.xml文件内容如下:

<!-- products.xml -->
<root>
    <products>
        <product uuid='1234'>
            <id>10000</id>
            <name>苹果</name>
            <price>99999</price>
        </product>
        <product uuid='1235'>
            <id>10001</id>
            <name>小米</name>
            <price>999</price>
        </product>
        <product uuid='1236'>
            <id>10002</id>
            <name>华为</name>
            <price>9999</price>
        </product>
    </products>
</root>

解析思路

# coding=utf-8
from xml.etree.ElementTree import parse
doc = parse('./products.xml')
print(type(doc))

for item in doc.iterfind('products/product'):
    id = item.findtext('id')
    name = item.findtext('name')
    price = item.findtext('price')
    uuid = item.get('uuid')
    print('uuid={}, id={}, name={}, price={}'.format(uuid, id, name, price), end='\n----------\n')

  • 利用parse函数可加载XML文档,该函数返回一个ElementTree类型的对象。借助该对象的iterfind方法,能够对XML中指定的节点路径进行迭代遍历。
  • XML结构具有高度灵活性,便于在各类应用程序中读写数据,因此它迅速成为数据交换的通用标准语言。尽管其他软件支持多种数据交换格式,但这并不妨碍支持XML的应用程序轻松与Windows、Linux或其他平台产生的信息进行整合。程序可以方便地将XML数据加载至内存中进行解析,最终以XML格式输出处理结果。
  • 值得注意的是,这种数据格式与我们在爬虫抓取数据时遇到的未经处理的原始数据格式极为相似,甚至读取操作的逻辑也几乎一致。感兴趣的朋友可以进一步查阅这两种数据格式的背景资料以加深理解。

以上就是关于Python读取XML节点及属性值方法的详细介绍,更多Python XML处理相关内容可搜索本站历史文章或继续阅读后续教程,感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。