Python与XML文件处理详解(1):使用xml.etree.ElementTree处理XML

目录

第一部分:XML基础与Python库概览

第1章:XML文件快速回顾

第2章:Python的XML处理库家族

第二部分:使用xml.etree.ElementTree处理XML

第3章:解析XML文档

3.1 从文件解析

3.2 从字符串解析

第4章:遍历与访问元素

4.1 直接访问与迭代

4.2 使用find(), findall(), 和findtext()

第5章:提取元素数据

第6章:修改XML文档

6.1 修改元素、属性和文本

6.2 删除元素

6.3 将修改写回文件

第7章:创建全新的XML文档

第三部分:高级主题与技巧

第8章:使用XPath高效查询

第9章:处理XML命名空间


 详见XML介绍:XML与ARXML文件详解:从通用数据交换到汽车软件的基石

第一部分:XML基础与Python库概览

第1章:XML文件快速回顾

一个XML文件的核心在于其层次化的树形结构。它由以下部分组成:

  • 声明<?xml version="1.0" encoding="UTF-8"?> 定义了版本和编码。
  • 元素:构成树结构的节点,如 <book>&lt;title&gt;
  • 属性:元素的附加信息,如 <book id="123">
  • 文本:元素的内容,如 &lt;title&gt;Python编程&lt;/title&gt;
  • 注释<!-- 这是一个注释 -->

一个简单的XML示例(books.xml):

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <book id="bk101" category="CS">
        <author>李伟</author>
        &lt;title&gt;Python从入门到实践&lt;/title&gt;
        <price>89.00</price>
    </book>
    <book id="bk102" category="Fiction">
        <author>刘慈欣</author>
        &lt;title&gt;三体&lt;/title&gt;
        <price>59.80</price>
    </book>
</catalog>

第2章:Python的XML处理库家族

Python标准库提供了三套主要API来处理XML,各有其适用场景:

  1. xml.etree.ElementTree (ET)

    • 特点:轻量级、Pythonic、内存消耗相对较小、API简洁。
    • 适用场景:大多数XML读写任务的首选,尤其适合中小型文件和简单的数据提取。
  2. xml.dom.minidom (DOM)

    • 特点:实现了W3C DOM API的一个简化版本。将整个文档加载到内存,形成一棵节点树。
    • 适用场景:需要完全随机访问整个文档、或熟悉DOM操作(如来自JavaScript)的开发者。比ET耗内存。
  3. xml.sax (SAX)

    • 特点:基于事件的API。解析器读取文件并触发事件(如“遇到开始标签”、“遇到文本”),由用户提供的处理器函数来处理。流式读取
    • 适用场景:处理非常大的XML文件(几个GB),内存友好,但编程模型复杂,只能顺序访问。

第二部分:使用xml.etree.ElementTree处理XML

  ElementTree将整个XML文档解析为两种主要对象:

  • Element:代表一个XML元素(节点)。
  • ElementTree:代表整个XML文档树。

第3章:解析XML文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python自动化码农

感谢打赏,您的鼓励是我创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值