读取XML文件在Python中是一个常见的任务,可以使用内置的xml.etree.ElementTree
模块来完成。这是一个轻量级的XML解析库,适合处理大多数XML文件。下面是一个简单的示例代码,展示如何读取XML文件并提取一些信息。
假设我们有一个名为example.xml
的XML文件,内容如下:
<?xml version="1.0"?>
<data> <country name="Liechtenstein"> <rank>1</rank> <year>2023</year> <gdppc>141100</gdppc> <neighbor name="Austria" direction="E"/> <neighbor name="Switzerland" direction="W"/> </country> <country name="Singapore"> <rank>4</rank> <year>2023</year> <gdppc>59900</gdppc> <neighbor name="Malaysia" direction="N"/> </country>
</data>
以下是使用xml.etree.ElementTree
读取并解析这个XML文件的Python代码:
import xml.etree.ElementTree as ET # 解析XML文件
tree = ET.parse('example.xml')
root = tree.getroot() # 遍历根元素下的所有子元素
for country in root.findall('country'): country_name = country.get('name') rank = country.find('rank').text year = country.find('year').text gdppc = country.find('gdppc').text print(f"Country: {country_name}") print(f"Rank: {rank}") print(f"Year: {year}") print(f"GDP per capita: {gdppc}") # 遍历邻接国家 for neighbor in country.findall('neighbor'): neighbor_name = neighbor.get('name') direction = neighbor.get('direction') print(f" Neighbor: {neighbor_name} (Direction: {direction})") print() # 空行分隔不同国家
运行这个代码后,你会得到如下输出:
Country: Liechtenstein
Rank: 1
Year: 2023
GDP per capita: 141100 Neighbor: Austria (Direction: E) Neighbor: Switzerland (Direction: W) Country: Singapore
Rank: 4
Year: 2023
GDP per capita: 59900 Neighbor: Malaysia (Direction: N)
解释代码
-
导入模块:
import xml.etree.ElementTree as ET
导入xml.etree.ElementTree模块,并简称为ET。
-
解析XML文件:
tree = ET.parse('example.xml') root = tree.getroot()
使用ET.parse
函数读取XML文件,并获取根元素。 -
遍历根元素下的所有子元素:
for country in root.findall('country'): ...
使用findall方法找到根元素下所有的<country>子元素。
-
获取子元素的属性和文本:
country_name = country.get('name') rank = country.find('rank').text year = country.find('year').text gdppc = country.find('gdppc').text
使用get方法获取<country>元素的name属性,使用find方法获取其他子元素的文本内容。
-
遍历邻接国家:
for neighbor in country.findall('neighbor'): neighbor_name = neighbor.get('name') direction = neighbor.get('direction') ...
使用
findall
方法找到每个<country>
元素下的所有<neighbor>
子元素,并获取它们的属性。
通过这种方式,你可以轻松地读取并解析XML文件,并提取所需的信息。
最后这里免费分享给大家[学习资料,包含视频、源码]。书籍,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以加我一起学习交流。
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习
⑤ 历年互联网企业Python面试真题,复习时非常方便
完整安装、学习资料
扫下方二维码免费领取源码还有案例↓ ↓ ↓