下面是关于Python中使用ElementTree解析XML示例的完整攻略。
一、什么是ElementTree
ElementTree是Python中一个用于解析和操作XML文档的库。它提供了一个简单的API,可以轻松地读取和修改XML文档中的元素和属性。使用ElementTree,可以对XML文档进行各种操作,例如遍历、搜索、添加、删除和修改等。
二、使用ElementTree解析XML示例
下面是两个使用ElementTree解析XML的示例:
示例1:读取XML文件
假设有一个名为“test.xml”的XML文件包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<person>
<name>John</name>
<age>25</age>
</person>
<person>
<name>Jane</name>
<age>30</age>
</person>
</root>
我们可以使用ElementTree读取并解析该XML文件,代码如下:
import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
root = tree.getroot()
for person in root.findall('person'):
name = person.find('name').text
age = person.find('age').text
print('Name: %s, Age: %s' % (name, age))
运行上述代码,输出结果如下:
Name: John, Age: 25
Name: Jane, Age: 30
代码解释:
- 使用
ET.parse('test.xml')
方法读取XML文件,并将其解析成一个ElementTree对象; - 使用
tree.getroot()
方法获取XML根元素; - 使用
root.findall('person')
方法获取XML中所有名为“person”的元素,并通过循环遍历每个“person”元素; - 使用
person.find('name').text
和person.find('age').text
方法获取“person”元素中“name”和“age”子元素的文本内容,并将其打印出来。
示例2:创建XML文件
我们也可以使用ElementTree创建一个新的XML文件并写入内容,代码如下:
import xml.etree.ElementTree as ET
root = ET.Element('root')
person1 = ET.SubElement(root, 'person')
name1 = ET.SubElement(person1, 'name')
name1.text = 'John'
age1 = ET.SubElement(person1, 'age')
age1.text = '25'
person2 = ET.SubElement(root, 'person')
name2 = ET.SubElement(person2, 'name')
name2.text = 'Jane'
age2 = ET.SubElement(person2, 'age')
age2.text = '30'
tree = ET.ElementTree(root)
tree.write('new.xml', encoding='utf-8', xml_declaration=True)
运行上述代码后,将会在当前目录下创建一个名为“new.xml”的XML文件,其中包含以下内容:
<?xml version='1.0' encoding='utf-8'?>
<root>
<person>
<name>John</name>
<age>25</age>
</person>
<person>
<name>Jane</name>
<age>30</age>
</person>
</root>
代码解释:
- 使用
ET.Element('root')
方法创建XML根元素; - 使用
ET.SubElement(root, 'person')
方法创建名为“person”的子元素,并将其添加到根元素下; - 使用
ET.SubElement(person1, 'name')
方法创建名为“name”的子元素,并将其添加到“person”元素下; - 使用
name1.text = 'John'
方法设置“name”元素的文本内容; - 使用
ET.ElementTree(root)
方法将XML树结构打包成一个ElementTree对象; - 使用
tree.write('new.xml', encoding='utf-8', xml_declaration=True)
方法将XML内容写入到名为“new.xml”的文件中,并指定XML声明以及编码方式。
三、总结
在Python中使用ElementTree解析和操作XML文档非常方便。本文介绍了如何使用ElementTree读取XML文件和创建XML文件,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中使用ElementTree解析XML示例 - Python技术站