解析XML
xml.etree.ElementTree是Python标准库中用于处理XML的模块
可以通过以下语句引入
import xml.etree.ElementTree as ET
解析xml时,可以从文件中导入,也可以从string获取
例如:
# 从字符串中导入
xml_string = '<root><element>Some data</element></root>'
root = ET.fromstring(xml_string)# 从文件中导入
xmlFile = './output/output.xml'
tree = ET.parse(xmlFile)
root = tree.getroot()
遍历XML树
使用find方法可以查找具有指定标签的第一个元素
title_element = root.find('title')# 在进行元素定位时,还可以根据标签的属性进行筛选
title_element = root.find('title[@color='blue']')
使用findall方法可以查找具有指定标签的所有子元素
book_elements = root.findall('book')
访问元素的属性和文本内容
当访问元素的属性时有以下两种方法
price = book_element.attrib['price']price = book_element.get('price')
当访问元素的文本内容时,可以通过以下方法
title_text = title_element.text
创建xml
元素的构造函数
new_element = ET.Element('new_element')
可以使用SubElement()函数创建具有指定标签和父节点的子元素:
new_sub_element = ET.SubElement(root, 'new_sub_element')
修改xml
可以使用remove()方法直接删除元素
root.remove(title_element)
可以直接修改元素的text
title_element.text = 'Introduction to Python'
保存xml
使用以下方法将xml树保存到文件
tree = ET.ElementTree(root)
tree.write('books.xml')