☰
python语言XML文件读取
2026/10/10 2:12:49 网站建设 项目流程

前言

本部分不对 XML 的理论结构做深入分析,仅作为一个快速参考说明,用于记录在实际数据处理中常用的 XML 结构理解方式,以及 Python 中对 XML 节点的基本调用方法,便于后续快速查阅。

XML文件结构简介

XML文件的基本单位是由标签包起来的一整块内容,一个元素示例:

<item id="001"> hello </item>

其中,整个标签(Tag)<item>.....</item>包起来的内容可以看作一个节点(xml中称作元素,Element)。写在<>中的id="001",这部分是节点的属性(Attribute),可以省略。标签中间包着的hello是标签的真正内容(Text)。

对应关系如下表所示:

XML名字python
<item>...<\item>Element(元素)node
itemTag(标签)node.tag
id="001"Attribute(属性)node.attrib
helloText(内容)node.text

每个XML有一个根节点(Root Element),根节点包含多个子节点(Child Element),子节点也可以包含多个孙节点(Grandchild Element),以此类推。

<root> <child A><\child A> <child B ID="001"><\child B> <grandchild A><\grandchild A> <grandchild B><\grandchild B> <\root>

上例所示的关系可以由树的形式画出:

root(根节点Root Element) ├── child A(1级子节点First-level Child Element) └── child B(1级子节点First-level Child Element) └── grandchild A(2级子节点Second-level Child Element) └── grandchild B(2级子节点Second-level Child Element)

其中,child A 和child B是同辈节点,grandchild A和grandchild B是同辈节点。root是child A和child B的母节点,child B是grandchild A和grandchild B的母节点。

大致了解这些关系,就可以看懂XML的结构和内容了。

实例(仅包含部分节点),同色的节点互为同辈节点:

python函数调用

文件读取

python自带XML包,可以使用XML包读取XML文件,主要用到其中的ElementTree类。

import xml.etree.ElementTree as ET

文件读取:

tree = ET.parse('D://ukbiobank_ecg_test.xml') root = tree.getroot()

读取到的是一个树结构数据。

查看XML文件的结构

打印所有1级子节点的标签:

#打印所有1级子节点标签 for child in root: print(child.tag)

运行结果:

打印所有节点标签:

def print_tree(element, level=0): print(" " * level + element.tag) for child in element: print_tree(child, level + 1) print_tree(root)

运行结果(太长,只截取部分):

使用.find()方法查找节点

.find()基本用法:

node.find("tag")#只在当前子层寻找 node.find(".//tag")#查询所有子孙节点

返回值是整个节点,不是列表(list)。

可以使用.find()来找到相应的节点,并调用print_tree函数并打印出其所有子节点的标签。例如查看ClinicalInfo这个节点和其所有子节点标签:

clinicinfo = root.find("ClinicalInfo") print_tree(clinicinfo)

运行结果:

注意:如果有多个同名节点,.find()方法只会读取其中的第一个节点。

使用.findall()方法查找节点

有同名节点时,使用.findall()方法可以找到所有同名节点的集合。

node.findall("tag")

示例:

waves = strip.findall("WaveformData")

waves中包含了Tag为“WaveformData”的全部节点。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询