下面将详细讲解Python对XML文件实现增删改查操作的完整攻略。首先,需要导入Python内置的xml库。
import xml.etree.ElementTree as ET
然后,我们需要首先加载XML文件,可以使用ET.parse()
方法来完成。比如我们有如下的books.xml
文件:
<?xml version="1.0"?>
<books>
<book category="科技">
<title>Python基础教程(第3版)</title>
<author>张云龙</author>
<year>2017</year>
<price>89.80</price>
</book>
<book category="小说">
<title>白夜行</title>
<author>东野圭吾</author>
<year>2007</year>
<price>19.90</price>
</book>
</books>
加载books.xml
文件的代码如下:
tree = ET.parse('books.xml')
root = tree.getroot()
接下来就可以开始对XML文件进行增删改查操作了:
- 增加节点
要增加节点,需要先创建一个node节点,然后使用root.append()
方法将其添加到根节点下。比如我们要新增一本名叫《代码大全(第二版)》的书,代码如下:
book = ET.Element('book')
book.set('category', '计算机科学')
title = ET.SubElement(book, 'title')
title.text = '代码大全(第二版)'
author = ET.SubElement(book, 'author')
author.text = 'Steve McConnell'
year = ET.SubElement(book, 'year')
year.text = '2004'
price = ET.SubElement(book, 'price')
price.text = '99.00'
root.append(book)
tree.write('new_books.xml', encoding='UTF-8')
在上面的代码中,我们先创建了一个名为book
的节点,并通过set()
方法为其设置了属性category
。然后使用ET.SubElement()
方法创建了其子节点title
、author
、year
和price
,并分别通过text
属性设置了它们的文本内容。最后将book
节点添加到了根节点下,然后将修改后的XML文件保存到了new_books.xml
文件中。
- 修改节点
要修改节点,首先需要找到要修改的节点,然后修改其属性或子节点的文本内容即可。比如我们要将上面新增的《代码大全(第二版)》这本书的价格修改为98.00
,代码如下:
for book in root.iter('book'):
if book.find('title').text == '代码大全(第二版)':
book.find('price').text = '98.00'
tree.write('new_books.xml', encoding='UTF-8')
在上面的代码中,我们使用了root.iter()
方法来获取到所有的book
节点,并使用find()
方法找到其中标题为《代码大全(第二版)》
的那本书。然后修改其price
的文本内容为98.00
,最后将修改后的XML文件保存到了new_books.xml
文件中。
- 删除节点
要删除节点,直接使用remove()
方法将其从父节点中删除即可。比如我们要删除上面新增的《代码大全(第二版)》这本书,代码如下:
for book in root.iter('book'):
if book.find('title').text == '代码大全(第二版)':
root.remove(book)
tree.write('new_books.xml', encoding='UTF-8')
在上面的代码中,我们使用了和修改节点类似的方法找到要删除的书籍,并通过root.remove()
方法将其从根节点中删除。最后将修改后的XML文件保存到了new_books.xml
文件中。
至此,这就是Python对XML文件实现增删改查操作的完整攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python对XML文件实现增删改查操作 - Python技术站