欢迎访问宙启技术站
智能推送

如何使用toprettyxml()方法来格式化Python中的XML文档

发布时间:2024-01-05 08:21:18

在Python中,我们可以使用内置的xml.dom.minidom模块来处理XML文档,并使用其toprettyxml()方法来格式化XML文档。

首先,我们需要导入xml.dom.minidom模块:

import xml.dom.minidom

接下来,我们可以使用xml.dom.minidom.parseString()方法来解析一个XML字符串,并返回一个Document对象。例如,我们有一个XML字符串如下:

xml_str = """
<employee>
    <name>John Doe</name>
    <age>30</age>
    <designation>Software Engineer</designation>
</employee>
"""

我们可以通过以下方式解析该XML字符串:

dom = xml.dom.minidom.parseString(xml_str)

dom是一个Document对象,代表整个XML文档的DOM树。我们可以通过以下方式获取根元素:

root = dom.documentElement

现在,我们可以使用toprettyxml()方法来格式化XML文档。首先,我们可以设置一些格式化选项,例如使用缩进、换行符和元素之间的空格。以下是一些常用的选项:

- indent:使用的缩进字符,默认为4个空格。

- newl:使用的换行符,默认为

- addindent:是否为所有子元素添加缩进,默认为True。

- encoding:XML文档的编码,默认为None。

接下来,我们可以调用toprettyxml()方法并将选项作为参数传递,以获得格式化的XML文档:

pretty_xml = dom.toprettyxml(indent="    ", newl="
")

在上面的示例中,我们使用了4个空格的缩进,并在每个元素之后添加了换行符。

最后,我们可以打印格式化的XML文档,或将其写入文件:

print(pretty_xml)

完整的代码示例如下:

import xml.dom.minidom

xml_str = """
<employee>
    <name>John Doe</name>
    <age>30</age>
    <designation>Software Engineer</designation>
</employee>
"""

dom = xml.dom.minidom.parseString(xml_str)
root = dom.documentElement

pretty_xml = dom.toprettyxml(indent="    ", newl="
")
print(pretty_xml)

运行该代码,输出结果如下:

<employee>
    <name>John Doe</name>
    <age>30</age>
    <designation>Software Engineer</designation>
</employee>

你也可以将pretty_xml写入文件,例如:

with open("formatted.xml", "w") as file:
    file.write(pretty_xml)

以上就是使用toprettyxml()方法来格式化Python中XML文档的方法。通过使用xml.dom.minidom模块,我们可以轻松地解析和格式化XML文档。