pin_drop当前位置:知识文库 ❯ 图文

Python XML文件操作 - ElementTree解析与创建XML完整

一、概述

xml.etree.ElementTree、解析与创建XML。本篇教程将详细介绍XML文件操作的核心概念和Python中的实际应用。


二、语法

代码示例

# XML文件操作相关语法示例
import xml.etree.ElementTree as ET

# 解析XML文件
tree = ET.parse('file.xml')
root = tree.getroot()

# 创建XML元素
root = ET.Element('root')
child = ET.SubElement(root, 'child')
child.text = '内容'

# 写入XML文件
tree = ET.ElementTree(root)
tree.write('output.xml', encoding='utf-8')

三、基本用法

代码示例

# 基本用法示例
import xml.etree.ElementTree as ET

# 示例1:解析XML字符串
xml_data = '''<?xml version="1.0"?>
<books>
    <book id="1">
        <title>Python教程</title>
        <author>张三</author>
    </book>
</books>'''

root = ET.fromstring(xml_data)
print(f"根标签: {root.tag}")

# 遍历子元素
for book in root.findall('book'):
    title = book.find('title').text
    author = book.find('author').text
    print(f"书名: {title}, 作者: {author}")

四、代码示例

代码示例

# 详细代码示例
import xml.etree.ElementTree as ET

# 示例1:读取XML文件
def read_xml(filename):
    tree = ET.parse(filename)
    root = tree.getroot()
    
    for item in root:
        print(f"标签: {item.tag}, 属性: {item.attrib}")
        for child in item:
            print(f"  子标签: {child.tag}, 内容: {child.text}")

# 示例2:创建XML文件
def create_xml(filename):
    root = ET.Element('students')
    
    student1 = ET.SubElement(root, 'student', id='001')
    ET.SubElement(student1, 'name').text = '李四'
    ET.SubElement(student1, 'age').text = '20'
    
    student2 = ET.SubElement(root, 'student', id='002')
    ET.SubElement(student2, 'name').text = '王五'
    ET.SubElement(student2, 'age').text = '22'
    
    tree = ET.ElementTree(root)
    tree.write(filename, encoding='utf-8', xml_declaration=True)

# 示例3:修改XML文件
def modify_xml(filename):
    tree = ET.parse(filename)
    root = tree.getroot()
    
    # 修改元素内容
    for student in root.findall('student'):
        if student.get('id') == '001':
            student.find('age').text = '21'
    
    tree.write(filename, encoding='utf-8')

# 示例4:删除XML元素
def delete_element(filename, student_id):
    tree = ET.parse(filename)
    root = tree.getroot()
    
    for student in root.findall('student'):
        if student.get('id') == student_id:
            root.remove(student)
    
    tree.write(filename, encoding='utf-8')

五、注意事项

注意1:使用XML文件操作时需要注意的关键点。

注意2:常见的陷阱和最佳实践。


六、小结

  • 核心概念1:XML文件操作的核心概念1

  • 核心概念2:XML文件操作的核心概念2

  • 核心概念3:XML文件操作的核心概念3


七、练习题

练习1

编写程序,练习XML文件操作的基本用法。

练习2

编写一个函数,在实际场景中应用XML文件操作。

常见问题

ElementTree和minDOM有什么区别?

ElementTree是Python标准库中的轻量级XML处理模块,API简洁易用;minDOM功能更强大但内存占用较大。对于大多数场景,ElementTree已经足够使用。

如何处理XML中的特殊字符?

ElementTree会自动处理XML特殊字符的转义(如<、>、&等)。在写入XML时,这些字符会被自动转换为实体引用;读取时会自动还原。

如何格式化输出的XML文件?

可以使用ET.indent()方法(Python 3.9+)来格式化XML输出,使其具有良好的缩进和换行。对于旧版本,可以使用第三方库如lxml或手动实现格式化逻辑。

标签: XML操作 ElementTree 解析XML 创建XML Python

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python读写JSON数据 下一篇: Python os模块

poll相关推荐