您的位置:

Python读取XML文件

一、XML文件

XML(Extensible Markup Language)可扩展标记语言,是一种用于存储数据的标记语言...

XML 文件通常存在于 Web 应用程序中,是因为 XML 文件对于通过网络发送和接收信息非常方便。XML 可以用来描述结构化信息,同时也非常适合通过网络进行信息传输。

在 Python 中,可以使用 xml.etree.ElementTree 模块来解析 XML 文件。

二、解析XML文件

1. 读取XML文件

在 Python 中,可以使用ElementTree 模块的 parse 将 XML 文件转换成 ElementTree 对象。

import xml.etree.ElementTree as ET

tree = ET.parse('example.xml')
root = tree.getroot()

2. 遍历XML文件

遍历 ElementTree 对象的两种方式:迭代和递归。

2.1 迭代方法

可以使用root.iter()方法来遍历XML文件中的所有元素。

for elem in root.iter():
    print(elem.tag, elem.attrib)

2.2 递归方法

还可以使用递归方法来遍历XML文件中的所有元素,通过执行elem.getchildren()和elem.getiterator()方法来遍历当前元素的所有子元素。

def traverse(node):
    if len(node) == 0:
        print(node.tag, node.attrib)
    else:
        print(node.tag, node.attrib)
        for child in node.getchildren():
            traverse(child)

traverse(root)

3. 查找XML文件中的元素

可以使用root.findall()方法或root.find()来查找指定元素。

3.1 findall()方法

root.findall()方法返回一个包含所有匹配元素的 list。

for elem in root.findall('country'):
    rank = elem.find('rank').text
    name = elem.get('name')
    print(name, rank)

3.2 find()方法

root.find()方法返回与查询条件匹配的第一个元素。

year = root.find("./year")
print(year.text)

三、修改XML文件

1. 添加元素

可以使用ElementTree的Element对象的subelement()方法来添加元素。

new_element = ET.Element("new_element", attrib={"name": "example"})
root.append(new_element)

2. 修改元素

可以使用Element对象的text属性和set()方法来修改元素的值。

year = root.find("./year")
year.text = "2015"
year.set("updated", "yes")

3. 删除元素

可以使用Element对象的remove()方法来删除元素。

country = root.find("./country[@name='Panama']")
root.remove(country)

四、总结

在 Python 中,使用ElementTree 模块解析和修改 XML 文件非常方便。可以使用迭代和递归两种方法遍历 XML 文件中的所有元素,也可以使用 find() 和 findall() 方法查找指定元素,同时也可以使用 subelement()、text 属性、set() 方法和 remove() 方法来操作 XML 文件。