Python中如何读取和修改XML文件的内容
发布时间:2023-12-11 17:36:26
在Python中,可以使用xml.etree.ElementTree模块来读取和修改XML文件的内容。
首先,需要导入xml.etree.ElementTree模块:
import xml.etree.ElementTree as ET
1. 读取XML文件的内容
可以使用ET.parse()函数来解析XML文件,返回一个ElementTree对象,然后可以通过该对象获取根节点元素。例如,假设有一个名为data.xml的XML文件,内容如下:
<root>
<person>
<name>John Doe</name>
<age>25</age>
<city>New York</city>
</person>
<person>
<name>Jane Smith</name>
<age>30</age>
<city>Los Angeles</city>
</person>
</root>
可以使用以下代码来读取XML文件的内容:
tree = ET.parse('data.xml')
root = tree.getroot()
# 打印根节点元素的tag和属性
print(root.tag, root.attrib)
# 打印第一个person节点的tag和子节点的文本内容
person = root.find('person')
name = person.find('name').text
age = person.find('age').text
city = person.find('city').text
print(name, age, city)
输出结果如下:
root {}
John Doe 25 New York
2. 修改XML文件的内容
可以使用Element对象的属性和方法来修改XML文件的内容。例如,可以使用set()方法修改节点的文本内容,使用append()方法添加新的子节点。以修改年龄为例,示例代码如下:
# 修改第一个person节点的age
person = root.find('person')
age = person.find('age')
age.set('value', '27')
# 添加一个新的person节点
new_person = ET.Element('person')
name = ET.Element('name')
name.text = 'Alex Johnson'
age = ET.Element('age')
age.text = '35'
city = ET.Element('city')
city.text = 'Chicago'
new_person.append(name)
new_person.append(age)
new_person.append(city)
root.append(new_person)
# 保存修改后的XML文件
tree.write('modified_data.xml')
修改后的XML文件modified_data.xml内容如下:
<root>
<person>
<name>John Doe</name>
<age value="27">25</age>
<city>New York</city>
</person>
<person>
<name>Jane Smith</name>
<age>30</age>
<city>Los Angeles</city>
</person>
<person>
<name>Alex Johnson</name>
<age>35</age>
<city>Chicago</city>
</person>
</root>
除了以上示例,xml.etree.ElementTree模块还提供了其他方法和属性,可以根据具体需求进行使用。
