Python基础—用python读取xml文件!
读取XML文件在Python中是一个常见的任务,通常可以使用内置的模块来完成。这个模块提供了简单而高效的XML解析和生成功能。下面是一个详细的代码示例和讲解,展示了如何使用来读取XML文件。
读取XML文件在Python中是一个常见的任务,通常可以使用内置的xml.etree.ElementTree
模块来完成。这个模块提供了简单而高效的XML解析和生成功能。下面是一个详细的代码示例和讲解,展示了如何使用xml.etree.ElementTree
来读取XML文件。
代码示例
假设我们有一个名为example.xml
的XML文件,内容如下:
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdpcap>141100</gdpcap>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdpcap>59900</gdpcap>
<neighbor name="Malaysia" direction="N"/>
</country>
<!-- 更多国家数据 -->
</data>
我们的目标是读取这个文件,并提取出每个国家的名称、排名、年份和GDP。
import xml.etree.ElementTree as ET
# 解析XML文件
tree = ET.parse('example.xml')
root = tree.getroot()
# 遍历根元素下的所有子元素(这里是<country>元素)
for country in root.findall('country'):
# 获取国家的名称属性
country_name = country.get('name')
# 获取排名、年份和GDP的子元素,并提取它们的文本内容
rank = country.find('rank').text
year = country.find('year').text
gdpcap = country.find('gdpcap').text
# 打印提取的信息
print(f"Country: {country_name}")
print(f" Rank: {rank}")
print(f" Year: {year}")
print(f" GDP per capita: {gdpcap}")
print()
# 遍历邻居元素,并提取它们的名称和方向属性
for neighbor in country.findall('neighbor'):
neighbor_name = neighbor.get('name')
direction = neighbor.get('direction')
print(f" Neighbor: {neighbor_name} (Direction: {direction})")
print() # 空行分隔不同的国家
代码讲解
-
导入模块:
import xml.etree.ElementTree as ET
我们导入了
xml.etree.ElementTree
模块,并将其重命名为ET
以便于使用。 -
解析XML文件:
tree = ET.parse('example.xml') root = tree.getroot()
使用
ET.parse()
函数读取XML文件,并返回一个ElementTree
对象。然后,我们使用getroot()
方法获取XML文档的根元素。 -
遍历国家元素:
for country in root.findall('country'):
使用
findall()
方法查找根元素下所有的<country>
子元素,并遍历它们。 -
提取国家信息:
- 使用
get()
方法获取<country>
元素的name
属性。 - 使用
find()
方法查找<rank>
、<year>
和<gdpcap>
子元素,并使用.text
属性获取它们的文本内容。
- 使用
-
打印国家信息:
使用print()
函数打印提取出的国家信息。 -
遍历邻居元素:
for neighbor in country.findall('neighbor'):
在每个
<country>
元素内部,使用findall()
方法查找所有的<neighbor>
子元素,并遍历它们。 -
提取邻居信息:
- 使用
get()
方法获取<neighbor>
元素的name
和direction
属性。
- 使用
-
打印邻居信息:
使用print()
函数打印提取出的邻居信息。
通过上述步骤,我们可以成功地读取XML文件,并提取出所需的信息。xml.etree.ElementTree
模块提供了简单而强大的API,使得处理XML数据变得相对容易。

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