用python读取xml文件!
读取XML文件在Python中是一个常见的任务,可以使用内置的xml.etree.ElementTree模块来完成。这是一个轻量级的XML解析库,适合处理大多数XML文件。下面是一个简单的示例代码,展示如何读取XML文件并提取一些信息。
读取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面试真题,复习时非常方便
完整安装、学习资料
扫下方二维码免费领取源码还有案例↓ ↓ ↓

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)