python 生成xml文件,demo如下:
# 生成xml文件
from xml.dom.minidom import *
dic_data={"school1":{"name":"陕州中学","type":"初中"},
"school2":{"name":"实验高中","type":"高中"}
}
# 创建文档元素
doc=Document()
# 创建根节点
root=doc.createElement("manages")
# 根节点加入到文档模块
doc.appendChild(root)
i=1
for key in dic_data:
# 创建子节点_学校
school = doc.createElement("school")
school.setAttribute("id",str(i))
i = i + 1
# 将子节点加入到根节点中
root.appendChild(school)
dic_val=dic_data[key]
for val in dic_val:
# 编辑子节点内容
name = doc.createElement(val)
name.appendChild(doc.createTextNode(dic_val[val]))
school.appendChild(name)
# 创建xml文件
xmlfile=open("test.xml","w",encoding="utf-8")
doc.writexml(xmlfile, indent="", addindent="\t", newl="\n", encoding="utf-8")
xmlfile.close()
注:writexml方法说明如下
writexml(writer, indent="", addindent="", newl="", encoding=None),
writer是文件对象,必写参数,其余为可选参数
indent是每个tag前填充的字符,如:' ',则表示每个tag前有两个空格
addindent是每个子结点的缩近字符
newl是每个tag后填充的字符,如:'\n',则表示每个tag后面有一个回车
encoding是生成的XML信息头中的encoding属性值,在输出时minidom并不真正进行编码的处理, 如果你保存的文本内容中有汉字,则需要自已进行编码转换。
2> python 读取xml文件内容
# 解析xml
from xml.dom.minidom import parse
# 读取文件
dom=parse("test.xml")
# 获取文档元素对象
data=dom.documentElement
# 根据标签获取内容集合
stus_list=dom.getElementsByTagName("school")
# 循环遍历读取内容
for ele in stus_list:
name= ele.getElementsByTagName('name')[0].childNodes[0].nodeValue
type= ele.getElementsByTagName('type')[0].childNodes[0].nodeValue
print("学校名字:",name,"","所属年级:",type)
|