python基础之读取xml

  • Post category:other

以下是关于“Python基础之读取XML”的完整攻略,包括XML的基本知识、Python读取XML的方法和两个示例等。

XML的基本知识

XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。它使用自定义标记来描述数据的结构和内容。XML被广泛用于Web服务、数据交换和配置文件等领域。

XML文档由标记和数据组成。标记用于描述数据的结构,数据则是标记所描述的内容。XML标记由尖括号包围,例如<tag></tag>。标记可以包含属性,例如<tag attribute="value">

Python读取XML的方法

Python提供了许多库来读取处理XML文档,例如ElementTree、minidom和SAX等。以下是使用ElementTree库读取XML文档的基本步骤:

  1. 导入ElementTree库。
  2. 使用ElementTree库的parse函数打开XML文件并解析XML文档。
  3. 使用ElementTree库的getroot函数获取XML文档的根元素。
  4. 使用Element库的findall函数查找XML文档中的元素。
  5. 使用ElementTree库的get函数获取元素的属性值或文本内容。

以下是使用ElementTree库读取XML文档的示例代码:

import xml.etree.ElementTree as ET

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

# 获取XML文档的根元素
root = tree.getroot()

# 查找XML文档中的元素
for child in root.findall('book'):
    # 获取元素的属性值或文本内容
    title = child.get('title')
    author = child.find('author').text
    price = child.find('price').text
    print(title, author, price)

示例

以下是两个使用Python读取XML文档的示例:

示例一:读取XML文件中的学生信息

假设有一个XML文件,其中包含学生的姓名、年龄和成绩等信息。以下是示例代码:

<?xml version="1.0" encoding="UTF-8"?>
<students>
  <student>
    <name>张三</name>
    <age>18</age>
    <score>90</score>
  </student>
  <student>
    <name>李四</name>
    <age>19</age>
    <score>85</score>
  </student>
  <student>
    <name>王五</name>
    <age>20</age>
    <score>95</score>
  </student>
</students>

以下是读取XML文件中的学生信息的示例代码:

import xml.etree.ElementTree as ET

# 打开XML文件并解析XML文档
tree = ET.parse('students.xml')

# 获取XML文档的根元素
root = tree.getroot()

# 查找XML文档中的元素
for student in root.findall('student'):
    # 获取元素的属性值或文本内容
    name = student.find('name').text
    age = student.find('age').text
    score = student.find('score').text
    print(name, age, score)

示例二:读取XML文件中的电影信息

假设有一个XML文件,其中包含电影的名称、导演和演员等信息。以下是示例代码:

<?xml version="1.0" encoding="UTF-8"?>
<movies>
  <movie>
    <title>肖申克的救赎</title>
    <director>弗兰克·德拉邦特</director>
    <actor>蒂姆·罗宾斯</actor>
    <actor>摩根·弗里曼</actor>
  </movie>
  <movie>
    <title>阿甘正传</title>
    <director>罗伯特·泽米吉斯</director>
    <actor>汤姆·汉克斯</actor>
    <actor>罗宾·怀特</actor>
  </movie>
  <movie>
    <title>泰坦尼克号</title>
    <director>詹姆斯·卡梅隆</director>
    <actor>莱昂纳多·迪卡普里奥</actor>
    <actor>凯特·温丝莱特</actor>
  </movie>
</movies>

以下是读取XML文件中的电影信息的示例代码:

import xml.etree.ElementTree as ET

# 打开XML文件并解析XML文档
tree = ET.parse('movies.xml')

# 获取XML文档的根元素
root = tree.getroot()

# 查找XML文档中的元素
for movie in root.findall('movie'):
    # 获取元素的属性值或文本内容
    title = movie.find('title').text
    director = movie.find('director').text
    actors = [actor.text for actor in movie.findall('actor')]
    print(title, director, actors)

结论

Python提供了许多库来读取和处理XML文档,例如ElementTree、minidom和SAX等。使用Tree库读取XML文档的基本步骤是导入ElementTree库、使用parse函数打开XML文件并解析XML文档、使用getroot函数获取XML文档的根元素、使用findall函数查找XML文档中的元素、使用get函数获取元素属性值或文本内容。可以使用示例来学习和理解Python读取XML文档的方法。