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

如何使用toprettyxml()方法在Python中自定义XML文件输出格式

发布时间:2024-01-05 08:26:47

在Python中,我们可以使用xml.dom.minidom模块中的Node.toprettyxml()方法来自定义XML文件的输出格式。

toprettyxml()方法使用一个可选的缩进参数来指定缩进的空格数量,默认为4个空格。该方法还提供了其他一些可选参数来指定换行符、缩进字符和文本宽度等。

下面是一个使用toprettyxml()方法自定义XML文件输出格式的示例:

import xml.dom.minidom

# 创建一个XML文档
doc = xml.dom.minidom.Document()

# 创建根元素
root = doc.createElement("books")
doc.appendChild(root)

# 创建子元素
book1 = doc.createElement("book")
book1.setAttribute("id", "1")
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)

book2 = doc.createElement("book")
book2.setAttribute("id", "2")
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)

# 输出XML文件内容
xml_str = doc.toprettyxml(indent="  ", newl="
", encoding="utf-8")
print(xml_str)

运行上述代码,将输出符合自定义格式的XML文件内容:

<?xml version="1.0" encoding="utf-8"?>
<books>
  <book id="1">
    <title>Book 1</title>
    <author>Author 1</author>
  </book>
  <book id="2">
    <title>Book 2</title>
    <author>Author 2</author>
  </book>
</books>

在上述代码中,我们首先创建了一个XML文档,并使用doc.createElement()方法创建了根元素和子元素。然后,我们使用doc.appendChild()方法将子元素添加到根元素中,并使用setAttribute()方法设置了book元素的属性。

接下来,我们使用doc.createTextNode()方法创建了文本节点,并使用appendChild()方法将其添加到相应的元素中。

最后,我们使用toprettyxml()方法生成具有自定义格式的XML文件内容,并使用print()函数将其打印出来。

toprettyxml()方法调用中,我们通过indent=" "参数指定了两个空格作为缩进字符,通过newl="

"参数指定了换行符为

,通过encoding="utf-8"参数指定了XML文件的编码为UTF-8。

因此,toprettyxml()方法将根据这些参数生成带有缩进和换行的XML文件内容。