Python的XML解析和处理机制

Python提供了多种XML解析和处理的库,其中比较常用的有以下几种:

  1. ElementTree:Python标准库中的XML解析库,使用简单,速度较快,支持XPath查询,可以创建、修改和输出XML文档。

  2. lxml:基于C语言库libxml2和libxslt,速度快,支持XPath和XSLT,可以创建、修改和输出XML文档。

  3. xml.etree.ElementTree:Python标准库中的另一种XML解析库,与ElementTree类似,但是功能较少。

  4. xml.dom:Python标准库中的DOM解析库,支持创建、修改和输出XML文档,但是速度较慢,内存占用较高。

下面是一个使用ElementTree库解析XML文件的示例代码:

import xml.etree.ElementTree as ET

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

# 遍历XML文档
for child in root:
    print(child.tag, child.attrib)

# 访问XML元素
print('Title:', root.find('title').text)

# 使用XPath查询
for elem in root.findall('.//rank'):
    print(elem.text)

# 修改XML元素
for elem in root.iter('year'):
    new_year = int(elem.text) + 1
    elem.text = str(new_year)
    elem.set('updated', 'yes')

# 输出修改后的XML文档
tree.write('example.xml')
这段代码首先使用ET.parse()方法解析XML文件,然后使用getroot()方法获取根元素。接着,使用for循环遍历XML文档,使用find()方法访问XML元素,使用XPath查询,修改XML元素,最后输出修改后的XML文档