Python 解析XML文件

yizhihongxing

下面是Python解析XML文件的完整攻略。

简介

XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。Python提供了许多库来解析XML文件,其中较为流行的包括ElementTree、minidom等。本文将介绍如何使用ElementTree解析XML文件。

安装

在使用ElementTree前,需要先安装ElementTree库。可以使用pip进行安装:

pip install elementtree

解析XML

使用ElementTree解析XML的基本流程如下:

  1. 导入ElementTree库。

python
import xml.etree.ElementTree as ET

  1. 使用parse函数解析XML文件。

python
tree = ET.parse('example.xml')

  1. 获取根节点。

python
root = tree.getroot()

  1. 遍历子节点,获取XML文件中的信息。

python
for child in root:
print(child.tag, child.attrib)

其中,tag属性表示节点名称,attrib属性表示节点属性。

示例一:解析简单XML文件

考虑以下XML文件example.xml:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
</bookstore>

以下是解析XML文件的Python代码:

import xml.etree.ElementTree as ET

# 解析XML文件
tree = ET.parse('example.xml')

# 获取根节点
root = tree.getroot()

# 遍历子节点,并打印信息
for child in root:
    print(child.tag, child.attrib)
    for sub_child in child:
        print(f"\t{sub_child.tag}: {sub_child.text}")

输出结果如下:

book {'category': 'COOKING'}
    title: Everyday Italian
    author: Giada De Laurentiis
    year: 2005
    price: 30.00
book {'category': 'CHILDREN'}
    title: Harry Potter
    author: J.K. Rowling
    year: 2005
    price: 29.99

可以看到,代码实现了解析并遍历XML文件,获取了每本书的信息。

示例二:解析复杂XML文件

考虑以下XML文件example2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<students>
  <student id="001" name="Alice">
    <gender>Female</gender>
    <age>18</age>
    <courses>
      <course>Math</course>
      <course>English</course>
      <course>History</course>
    </courses>
  </student>
  <student id="002" name="Bob">
    <gender>Male</gender>
    <age>19</age>
    <courses>
      <course>Physics</course>
      <course>Chemistry</course>
    </courses>
  </student>
</students>

以下是解析XML文件的Python代码:

import xml.etree.ElementTree as ET

# 解析XML文件
tree = ET.parse('example2.xml')

# 获取根节点
root = tree.getroot()

# 遍历子节点,并打印信息
for child in root:
    print(child.tag, child.attrib)
    for sub_child in child:
        if sub_child.tag == 'courses':
            courses = [c.text for c in sub_child]
            print(f"\tcourses: {', '.join(courses)}")
        else:
            print(f"\t{sub_child.tag}: {sub_child.text}")

输出结果如下:

student {'id': '001', 'name': 'Alice'}
    gender: Female
    age: 18
    courses: Math, English, History
student {'id': '002', 'name': 'Bob'}
    gender: Male
    age: 19
    courses: Physics, Chemistry

在这个例子中,XML文件较为复杂,包含了学生的基本信息以及其选修的课程。代码根据节点名称判断是否为课程节点,如果是则提取出每个课程名并输出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 解析XML文件 - Python技术站

(0)
上一篇 2023年3月25日
下一篇 2023年3月25日

相关文章

  • 教你使用Python写一个简单的JSONParser

    接下来我将为你详细讲解如何使用Python写一个简单的JSON解析器。 简介 JSON是一种常用的数据交换格式,在Python中也是非常常见的。使用Python编写JSON解析器可以让我们更好地理解JSON格式,同时也可以帮助我们更好地处理和使用JSON数据。在这篇文章中,我们将学习如何使用Python编写一个简单的JSON解析器。 JSON详解 JSON是…

    python 2023年6月3日
    00
  • 100行Python代码实现自动抢火车票(附源码)

    讲解“100行Python代码实现自动抢火车票(附源码)”的完整攻略如下: 项目简介 该项目是一个基于Python的火车票抢购脚本,仅需100行代码便可实现自动购票。 必备工具 Python 3.x Chrome浏览器 Chrome浏览器对应版本的chromedriver 项目代码架构 import datetime from splinter.browse…

    python 2023年5月19日
    00
  • 对python字典元素的添加与修改方法详解

    对Python字典元素的添加与修改方法详解 字典是Python编程中使用非常广泛的一种数据结构,它用于存储键-值对,可以快速地根据键来查找相应的值。在使用Python字典时,我们经常需要对字典元素进行添加与修改操作。本文将详细讲解Python字典元素的添加与修改方法,帮助你更好地使用Python字典。 添加元素 Python字典中添加元素有如下几种方式: 直…

    python 2023年5月13日
    00
  • python实现redis三种cas事务操作

    下面就来详细讲解Python实现Redis三种CAS事务操作的完整攻略: 什么是CAS操作? CAS是Compare And Swap的缩写,中文翻译为比较并交换。是一类常用的无锁算法,用于在并发环境下实现乐观锁。 在Redis中,CAS操作可以通过WATCH、MULTI、EXEC三条命令来实现。下面分别来讲解这三个命令的用法。 使用WATCH命令实现CAS…

    python 2023年5月19日
    00
  • python 定时器,实现每天凌晨3点执行的方法

    实现每天凌晨 3 点执行任务,我们可以通过 Python 中的定时器模块 schedule 来实现。具体步骤如下: 1. 安装 schedule 模块 如果你还没有安装 schedule 模块,可以使用以下命令进行安装: pip install schedule 2. 导入 schedule 模块 在 Python 代码中,我们需要先导入 schedule …

    python 2023年6月2日
    00
  • pandas实现将日期转换成timestamp

    将日期转换成timestamp是pandas的一项重要功能,下面是一个完整的攻略,包含从简单到复杂的两个示例。 1. 将日期字符串转换成timestamp 将一个日期字符串转换成timestamp通常是我们在数据处理中需要频繁操作的,可以用pandas的to_datetime函数完成。 import pandas as pd date_str = ‘2022…

    python 2023年6月2日
    00
  • python利用pandas将excel文件转换为txt文件的方法

    下面是详细的实例教程。 1. 安装pandas 在开始使用pandas之前必须先安装该库,可以使用如下命令进行安装: pip install pandas 2. 加载excel文件 使用pandas库的read_excel()函数,可以轻松地将excel文件加载到python程序中。以加载名为“example.xlsx”的文件为例: import panda…

    python 2023年5月13日
    00
  • python实现删除文件与目录的方法

    下面是关于 Python 实现删除文件和目录的详细攻略。 删除文件 在 Python 中,我们可以使用 os 模块中的 remove() 方法来删除文件。 import os os.remove(‘temp.txt’) 当你运行上述代码时,Python 将会删除名为 temp.txt 的文件。如果文件不存在,会抛出 FileNotFoundError 异常。…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部