欢迎访问宙启技术站
智能推送

Python中的xml.etree.ElementTree模块应用实例

发布时间:2023-12-26 15:00:11

xml.etree.ElementTree是Python标准库中用于操作XML文件的模块,提供了一种简单而灵活的方式来解析和创建XML文件。

下面是一个使用xml.etree.ElementTree模块的实例,假设有一个books.xml的XML文件,内容如下:

<books>
    <book>
        <title>Python编程入门</title>
        <author>张三</author>
        <price>49.99</price>
    </book>
    <book>
        <title>Java编程入门</title>
        <author>李四</author>
        <price>59.99</price>
    </book>
</books>

1. 解析XML文件

首先,我们可以使用xml.etree.ElementTree模块解析books.xml文件,获取XML文件的根节点,并遍历根节点的子节点,获取每本书的信息。

import xml.etree.ElementTree as ET

tree = ET.parse('books.xml')  # 解析XML文件
root = tree.getroot()  # 获取根节点

for book in root.findall('book'):  # 遍历根节点的子节点
    title = book.find('title').text  # 获取书名
    author = book.find('author').text  # 获取作者
    price = float(book.find('price').text)  # 获取价格

    print('书名:', title)
    print('作者:', author)
    print('价格:', price)
    print('---------')

输出结果:

书名: Python编程入门
作者: 张三
价格: 49.99
---------
书名: Java编程入门
作者: 李四
价格: 59.99
---------

2. 创建XML文件

接下来,我们可以使用xml.etree.ElementTree模块创建一个新的XML文件,将几本书的信息保存到该文件中。

import xml.etree.ElementTree as ET

# 创建根节点
root = ET.Element('books')

# 创建子节点
book1 = ET.SubElement(root, 'book')
title1 = ET.SubElement(book1, 'title')
title1.text = 'Python编程入门'
author1 = ET.SubElement(book1, 'author')
author1.text = '张三'
price1 = ET.SubElement(book1, 'price')
price1.text = '49.99'

book2 = ET.SubElement(root, 'book')
title2 = ET.SubElement(book2, 'title')
title2.text = 'Java编程入门'
author2 = ET.SubElement(book2, 'author')
author2.text = '李四'
price2 = ET.SubElement(book2, 'price')
price2.text = '59.99'

# 创建XML文件
tree = ET.ElementTree(root)
tree.write('new_books.xml')

执行上述代码后,会在当前目录下生成一个名为new_books.xml的文件。打开该文件,可以看到新创建的XML文件内容如下:

<books>
    <book>
        <title>Python编程入门</title>
        <author>张三</author>
        <price>49.99</price>
    </book>
    <book>
        <title>Java编程入门</title>
        <author>李四</author>
        <price>59.99</price>
    </book>
</books>

可以看到,我们成功地使用xml.etree.ElementTree模块创建了一个包含几本书信息的XML文件。

总结:

通过上述实例,我们可以看到xml.etree.ElementTree模块提供了一种简单而灵活的方式来解析和创建XML文件。我们可以使用该模块提供的方法来获取XML文件的根节点,遍历节点和获取节点的属性值等,从而对XML文件进行读取和修改操作。同时,也可以使用该模块提供的方法来创建XML文件,将数据保存到XML文件中。