如何使用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文件内容。
