前言:将数据写入格式为xml中。
利用python模块xml中的dom将数据写入xml中,明确以下几个事情:
1.模块导入为:from xml.dom.minidom import Document
2.实例化一个dom:dom = Document()
3.创建标签:sortnumber = dom.createElement("Sortnumber")
4.将标签加入到dom中:dom.appendChild(sortnumber)
5.添加属性:sortnumber.setAttribute("number",'1')
6.保存数据:dom.writexml(f, indent='\t', newl='\n', addindent='\t')
f为写入文件,其他可以省略。
注意:根节点只能有一个,兄弟节点可以有多个,属性中的数字必须为字符串类型。
将以下数据写入xml中:
sortnumber_data = ["TU2", "TV7"]
keyword_data = ["住宅", "空间", "区位", "体型", "人文理念"]
abstracts_data = ["随着我国经济社会的发展,住宅的设计理念正在发生着悄悄的然而又是十分显著的变化,这种变化表现在住宅的区位设计、住宅的内部空间设计和住宅的体型设计中,住宅设计中的人文理念日益凸显"]
具体代码为:
from xml.dom.minidom import Document
"""
将数据写入xml中:
数据如下:TU2 TV7 ---sortnumber
住宅,空间,区位,体型,人文理念 --keywords
随着我国经济社会的发展,住宅的设计理念正在发生着悄悄的然而又是十分显著的变化,
这种变化表现在住宅的区位设计、住宅的内部空间设计和住宅的体型设计中,住宅设计中的人文理念日益凸显.---abstracts
"""
def write_datato_xml(sortnumber_data,keyword_data,abstracts_data):
# 实例化一个Domcument
dom = Document()
# 创建根节点
paper = dom.createElement("Paper")
# 将根节点添加到domcument中
dom.appendChild(paper)
# 循环遍历所有数据,写入domcument中
# 将sortnumber 写入
for x in range(len(sortnumber_data)):
# 创建sortnumber标签
sortnumber = dom.createElement("sortnumber")
# 将sortnumber加入到根节点paper
paper.appendChild(sortnumber)
# 取出每一个数据
x_data = sortnumber_data[x]
# 创建text标签
sortnumber_text = dom.createTextNode(x_data)
# 将text标签加入到sortnumber标签中
sortnumber.appendChild(sortnumber_text)
# 添加属性
sortnumber.setAttribute("number",'{}'.format(x))
# 将keywords写入
for x in range(len(keyword_data)):
# 创建keyword标签
keyword = dom.createElement("keyword")
# 将keyword 加入到paper
paper.appendChild(keyword)
# 取出每一个数据
x_data= keyword_data[x]
# 创建text标签
keyword_text = dom.createTextNode(x_data)
# 将text标签加入到kewword标签中
keyword.appendChild(keyword_text)
# 添加属性
keyword.setAttribute("number","{}".format(x))
# 将abstract写入
for x in range(len(abstracts_data)):
# 创建abstract标签
abstract = dom.createElement("abstract")
# 将absrtact标签加入到paper
paper.appendChild(abstract)
# 取出每一个数据
x_data = abstracts_data[x]
# 创建text标签
abstract_text = dom.createTextNode(x_data)
# 将text标签加入到abstract标签中
abstract.appendChild(abstract_text)
# 添加属性
abstract.setAttribute("number","{}".format(x))
with open("test2.xml",'w',encoding='utf-8') as f:
# f:文件对象,indent:每个tag前面填充的字符,addindent:每个子节点的缩进字符,newl:每个tag后填充的字符
dom.writexml(f, indent='\t', newl='\n', addindent='\t')
f.close()
def main():
# 数据
sortnumber_data = ["TU2", "TV7"]
keyword_data = ["住宅", "空间", "区位", "体型", "人文理念"]
abstracts_data = ["随着我国经济社会的发展,住宅的设计理念正在发生着悄悄的然而又是十分显著的变化,这种变化表现在住宅的区位设计、住宅的内部空间设计和住宅的体型设计中,住宅设计中的人文理念日益凸显"]
# 写入xml
write_datato_xml(sortnumber_data,keyword_data,abstracts_data)
if __name__ == '__main__':
main()
xml结果为:
<?xml version="1.0" ?>
<Paper>
<sortnumber number="0">TU2</sortnumber>
<sortnumber number="1">TV7</sortnumber>
<keyword number="0">住宅</keyword>
<keyword number="1">空间</keyword>
<keyword number="2">区位</keyword>
<keyword number="3">体型</keyword>
<keyword number="4">人文理念</keyword>
<abstract number="0">随着我国经济社会的发展,住宅的设计理念正在发生着悄悄的然而又是十分显著的变化,这种变化表现在住宅的区位设计、住宅的内部空间设计和住宅的体型设计中,住宅设计中的人文理念日益凸显</abstract>
</Paper>
总结:dom以根节点开始,添加子节点,将文本加入到子节点中,并为其设置属性以及属性值。