读取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)


解释代码

  1. 导入模块

    import xml.etree.ElementTree as ET
    导入xml.etree.ElementTree模块,并简称为ET。
    
  2. 解析XML文件

    tree = ET.parse('example.xml')  
    root = tree.getroot()


    使用ET.parse函数读取XML文件,并获取根元素。

  3. 遍历根元素下的所有子元素

    for country in root.findall('country'):  
        ...
    使用findall方法找到根元素下所有的<country>子元素。
    
  4. 获取子元素的属性和文本

    country_name = country.get('name')  
    rank = country.find('rank').text  
    year = country.find('year').text  
    gdppc = country.find('gdppc').text
    使用get方法获取<country>元素的name属性,使用find方法获取其他子元素的文本内容。
    
  5. 遍历邻接国家

    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面试真题,复习时非常方便

完整安装、学习资料
扫下方二维码免费领取源码还有案例↓ ↓ ↓

Logo

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

更多推荐