PYTHON JSON处理
PYTHON 代码规范 

PYTHON XML处理

Python 中处理 XML 数据可以通过内置的 xml.etree.ElementTree 模块,或者使用第三方库如 lxml。以下是使用 xml.etree.ElementTree 模块的一些基本操作:

1. 解析 XML 文件

import xml.etree.ElementTree as ET
# 解析本地的 XML 文件
tree = ET.parse('example.xml')
root = tree.getroot()
# 从字符串解析 XML
xml_str = """<root><child>Content</child></root>"""
root = ET.fromstring(xml_str)


2. 遍历 XML 树

for child in root:
    print(child.tag, child.attrib)


3. 查找元素

# 通过标签名查找所有子元素
for elem in root.findall('child'):
    print(elem.text)
# 通过路径查找元素
elem = root.find('.//child')
print(elem.text)


4. 修改元素

# 修改元素的文本
for elem in root.findall('child'):
    elem.text = 'New content'
# 修改元素的属性
for elem in root.findall('child'):
    elem.set('attribute', 'value')


5. 创建和添加元素

# 创建新元素
new_elem = ET.Element('newChild', attrib={'key': 'value'})
new_elem.text = 'Some text'
# 将新元素添加到根元素下
root.append(new_elem)


6. 删除元素

# 删除元素

for elem in root.findall('child_to_remove'):
    root.remove(elem)


7. 写入 XML 文件

# 将修改后的 XML 树写入文件
tree.write('new_example.xml')


使用 lxml 库

lxml 是一个功能更强大的 XML 处理库,支持 XPath 2.0 和更复杂的查询。使用 lxml 可以这样操作:

  • 安装 lxml

pip install lxml


  • 解析 XML

from lxml import etree
# 解析 XML 文件
tree = etree.parse('example.xml')
# 解析 XML 字符串
root = etree.fromstring(xml_str)


  • 使用 XPath 查找元素

# 使用 XPath 查找元素
elements = root.xpath('//root/child')
for elem in elements:
    print(elem.text)


  • 修改和写入

操作与 xml.etree.ElementTree 类似,但 lxml 的 XPath 功能更丰富。



注意事项

  • XML 的命名空间处理可能比上述示例更复杂,特别是当使用 lxml 时。

  • 处理大型 XML 文件时,可能需要考虑性能和内存使用。