📅  最后修改于: 2023-12-03 14:52:51.364000             🧑  作者: Mango
XML(Extensible Markup Language)是一种用于存储和传输数据的标记语言。在许多应用程序中都会使用到XML,比如Web Services、SOAP和RSS等。在Python中,有多种方法来解析和修改XML文件。
Python中常用的解析XML的库有xml.etree.ElementTree
和lxml
。
xml.etree.ElementTree
import xml.etree.ElementTree as ET
# 解析XML文件
tree = ET.parse('file.xml')
root = tree.getroot()
# 遍历XML文件
for child in root:
print(child.tag, child.attrib)
# 获取XML文件中的某段文本内容
for elem in root.iter('elem'):
print(elem.text)
lxml
lxml
是一个基于libxml2的Python XML和HTML处理库,功能更加强大,速度更快。
from lxml import etree
# 解析XML文件
tree = etree.parse('file.xml')
root = tree.getroot()
# 遍历XML文件
for child in root.iter():
print(child.tag)
# 获取XML文件中的某段文本内容
elems = tree.xpath('//elem')
for elem in elems:
print(elem.text)
在Python中,也可以使用xml.etree.ElementTree
和lxml
来修改XML文件。
xml.etree.ElementTree
import xml.etree.ElementTree as ET
# 解析XML文件
tree = ET.parse('file.xml')
root = tree.getroot()
# 修改XML文件内容
for elem in root.iter('old_elem'):
elem.tag = 'new_elem'
# 添加XML文件内容
new_elem = ET.Element('new_elem')
new_elem.text = 'new content'
root.append(new_elem)
# 保存XML文件
tree.write('new_file.xml')
lxml
from lxml import etree
# 解析XML文件
tree = etree.parse('file.xml')
root = tree.getroot()
# 修改XML文件内容
for elem in root.xpath('//old_elem'):
elem.tag = 'new_elem'
# 添加XML文件内容
new_elem = etree.Element('new_elem')
new_elem.text = 'new content'
root.append(new_elem)
# 保存XML文件
tree.write('new_file.xml')
以上就是在Python中解析和修改XML的方法,使用这些库可以方便地读取和修改XML文件。