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

如何使用toprettyxml()方法在Python中生成格式良好的XML文档

发布时间:2024-01-05 08:22:55

在Python中,通过使用xml.dom.minidom模块来操作XML文档,可以使用其中的toprettyxml()方法来生成格式良好的XML文档。toprettyxml()方法将XML文档转换为字符串,并对其进行格式化以提高可读性。

下面是一个简单的例子,展示了如何使用toprettyxml()方法生成一个格式良好的XML文档:

import xml.dom.minidom

# 创建XML文档对象
doc = xml.dom.minidom.Document()

# 创建根节点
root = doc.createElement("books")
doc.appendChild(root)

# 添加子节点
book1 = doc.createElement("book")
root.appendChild(book1)

title1 = doc.createElement("title")
title1_text = doc.createTextNode("Book 1")
title1.appendChild(title1_text)
book1.appendChild(title1)

author1 = doc.createElement("author")
author1_text = doc.createTextNode("Author 1")
author1.appendChild(author1_text)
book1.appendChild(author1)

year1 = doc.createElement("year")
year1_text = doc.createTextNode("2020")
year1.appendChild(year1_text)
book1.appendChild(year1)

book2 = doc.createElement("book")
root.appendChild(book2)

title2 = doc.createElement("title")
title2_text = doc.createTextNode("Book 2")
title2.appendChild(title2_text)
book2.appendChild(title2)

author2 = doc.createElement("author")
author2_text = doc.createTextNode("Author 2")
author2.appendChild(author2_text)
book2.appendChild(author2)

year2 = doc.createElement("year")
year2_text = doc.createTextNode("2021")
year2.appendChild(year2_text)
book2.appendChild(year2)

# 生成格式良好的XML文档字符串
xml_str = doc.toprettyxml(indent="  ")

# 输出XML文档字符串
print(xml_str)

上述代码创建了一个包含两本书信息的XML文档。通过调用doc.toprettyxml(indent=" ")方法,将XML文档转换为格式良好的字符串。indent参数指定了缩进的空格数。

运行以上代码,输出的XML文档字符串如下所示:

<?xml version="1.0" ?>
<books>
  <book>
    <title>Book 1</title>
    <author>Author 1</author>
    <year>2020</year>
  </book>
  <book>
    <title>Book 2</title>
    <author>Author 2</author>
    <year>2021</year>
  </book>
</books>

可以看到,生成的XML文档字符串中,每个节点都以适当的缩进进行了层级结构化,提高了可读性。

需要注意的是,如果XML文档较大,则生成格式良好的字符串可能会占用较大的内存。在这种情况下, 将XML文档直接写入文件,而不是先生成字符串再写入文件,以避免内存问题。

以上例子提供了一个简单介绍了如何使用toprettyxml()方法在Python中生成格式良好的XML文档。你可以根据自己的需求,使用这个方法生成任意复杂程度的XML文档,并根据需要进行进一步的操作。