首先我们要了解一下Python中处理XML文件的库:ElementTree。它是Python标准库中的一个模块,支持XML文档的解析和生成。
准备工作
在使用ElementTree之前,我们需要先导入它:
import xml.etree.ElementTree as ET
同时,我们也需要一个要写入的XML文件,比如这里假设它的路径为/path/to/xml/file.xml
。如果文件不存在,那么我们就需要先创建它。
写入XML文件
1. 创建根节点和子节点
我们可以先创建一个Element
对象作为XML文档的根节点,并指定tag
和attrib
(属性):
root = ET.Element('root')
root.set('version', '1.0')
然后再为根节点添加子节点:
child1 = ET.SubElement(root, 'child1')
child2 = ET.SubElement(root, 'child2')
同样地,我们也可以为子节点添加属性和文本内容:
child1.set('id', '123')
child1.text = 'Hello, world!'
child2.set('id', '456')
child2.text = 'Goodbye, world!'
最终整个XML文档的结构应该如下所示:
<root version="1.0">
<child1 id="123">Hello, world!</child1>
<child2 id="456">Goodbye, world!</child2>
</root>
2. 写入到文件中
我们可以使用ElementTree
库中的ElementTree
对象将这些节点写入到文件中:
tree = ET.ElementTree(root)
tree.write('/path/to/xml/file.xml', encoding='utf-8', xml_declaration=True)
其中,encoding
指定了文件的编码方式,xml_declaration
则指定是否在文件开头加上XML声明(简单说就是是否显示<?xml version="1.0" encoding="utf-8"?>
这句话)。
示例说明
示例1:写入一个包含多个城市信息的XML文件
import xml.etree.ElementTree as ET
# 创建根节点
root = ET.Element('cities')
root.set('version', '1.0')
# 添加子节点
beijing = ET.SubElement(root, 'city')
beijing.set('name', '北京')
beijing.set('population', '2154.1')
shanghai = ET.SubElement(root, 'city')
shanghai.set('name', '上海')
shanghai.set('population', '2428.0')
guangzhou = ET.SubElement(root, 'city')
guangzhou.set('name', '广州')
guangzhou.set('population', '1404.7')
shenzhen = ET.SubElement(root, 'city')
shenzhen.set('name', '深圳')
shenzhen.set('population', '1302.1')
# 写入到文件中
tree = ET.ElementTree(root)
tree.write('/path/to/cities.xml', encoding='utf-8', xml_declaration=True)
最终生成的XML文件结构如下所示:
<cities version="1.0">
<city name="北京" population="2154.1"/>
<city name="上海" population="2428.0"/>
<city name="广州" population="1404.7"/>
<city name="深圳" population="1302.1"/>
</cities>
示例2:向已有的XML文件中添加节点
import xml.etree.ElementTree as ET
# 解析XML文件
tree = ET.parse('/path/to/xml/file.xml')
root = tree.getroot()
# 添加子节点
child3 = ET.SubElement(root, 'child3')
child3.set('id', '789')
child3.text = 'Another node!'
# 保存回文件
tree.write('/path/to/xml/file.xml', encoding='utf-8', xml_declaration=True)
这段代码会在已有的XML文件中添加一个名为child3
的子节点,最终的XML文件结构如下所示:
<root version="1.0">
<child1 id="123">Hello, world!</child1>
<child2 id="456">Goodbye, world!</child2>
<child3 id="789">Another node!</child3>
</root>
以上就是“Python写入XML文件的方法”的完整攻略,希望可以帮到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python写入xml文件的方法 - Python技术站