📜  如何在Python中解析和修改 XML?(1)

📅  最后修改于: 2023-12-03 14:52:51.364000             🧑  作者: Mango

如何在Python中解析和修改 XML?

XML(Extensible Markup Language)是一种用于存储和传输数据的标记语言。在许多应用程序中都会使用到XML,比如Web Services、SOAP和RSS等。在Python中,有多种方法来解析和修改XML文件。

解析XML

Python中常用的解析XML的库有xml.etree.ElementTreelxml

使用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)
修改XML

在Python中,也可以使用xml.etree.ElementTreelxml来修改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文件。