前言本部分不对 XML 的理论结构做深入分析仅作为一个快速参考说明用于记录在实际数据处理中常用的 XML 结构理解方式以及 Python 中对 XML 节点的基本调用方法便于后续快速查阅。XML文件结构简介XML文件的基本单位是由标签包起来的一整块内容一个元素示例item id001 hello /item其中整个标签(Tagitem...../item包起来的内容可以看作一个节点xml中称作元素Element。写在中的id001这部分是节点的属性Attribute可以省略。标签中间包着的hello是标签的真正内容Text。对应关系如下表所示XML名字pythonitem...\itemElement元素nodeitemTag标签node.tagid001Attribute属性node.attribhelloText内容node.text每个XML有一个根节点(Root Element)根节点包含多个子节点Child Element子节点也可以包含多个孙节点Grandchild Element以此类推。root child A\child A child B ID001\child B grandchild A\grandchild A grandchild B\grandchild B \root上例所示的关系可以由树的形式画出:root根节点Root Element ├── child A1级子节点First-level Child Element └── child B1级子节点First-level Child Element └── grandchild A2级子节点Second-level Child Element └── grandchild B2级子节点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, level0): 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”的全部节点。