在Python中使用xml.dom.minidom.Node将XML文档写入文件
发布时间:2023-12-18 04:48:48
在Python中,可以使用xml.dom.minidom模块的Node类来将XML文档写入文件。这个模块提供了一个DOM(Document Object Model)接口,可以解析和操作XML文档。
首先,需要导入xml.dom.minidom模块和os模块,后者是用来操作文件的。
import os from xml.dom import minidom
接下来,我们可以使用Node类的toxml()方法将XML文档转换为字符串形式。toxml()方法会将整个XML文档转换为字符串,包括根节点和所有子节点。
# 创建一个XML文档
doc = minidom.Document()
# 创建根节点
root = doc.createElement('root')
doc.appendChild(root)
# 创建子节点
child = doc.createElement('child')
root.appendChild(child)
# 将XML文档转换为字符串
xml_str = doc.toxml()
可以使用toxml()方法的pretty_print参数来指定是否格式化输出,默认为False,即不格式化。如果要格式化输出,可以使用以下方式:
xml_str = doc.toprettyxml(indent=" ")
此时,xml_str中的内容将以缩进和换行的形式显示。
接下来,将字符串写入文件,可以使用Python内置的文件操作方法。在写入文件之前,可以先判断文件是否存在,如果不存在则创建文件的目录:
# 指定文件路径
file_path = 'output.xml'
# 创建目录
dir_path = os.path.dirname(file_path)
if not os.path.exists(dir_path):
os.makedirs(dir_path)
# 创建文件并写入字符串
with open(file_path, 'w') as xml_file:
xml_file.write(xml_str)
上述代码中,我们首先使用os.path.dirname()函数获取文件所在的目录路径。然后,使用os.path.exists()函数判断目录是否存在,如果不存在则使用os.makedirs()函数创建目录。
最后,使用open()函数创建文件对象,并以写入模式打开文件。将字符串写入文件时,需要使用write()方法。
完整的示例代码如下:
import os
from xml.dom import minidom
# 创建一个XML文档
doc = minidom.Document()
# 创建根节点
root = doc.createElement('root')
doc.appendChild(root)
# 创建子节点
child = doc.createElement('child')
root.appendChild(child)
# 将XML文档转换为字符串
xml_str = doc.toxml()
# 将字符串写入文件
file_path = 'output.xml'
dir_path = os.path.dirname(file_path)
if not os.path.exists(dir_path):
os.makedirs(dir_path)
with open(file_path, 'w') as xml_file:
xml_file.write(xml_str)
执行此代码后,将会在当前目录下创建一个名为output.xml的文件,内容为转换后的XML文档字符串。
