一、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 文件。