介绍
这篇文章主要介绍用python生成xml的方法是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
xml.dom。minidom模块实现创建一个XML文档。
<>强创建XML的过程强>
1,内存数据产生
2,产生XML内存对象(也就是DOM树)
3,产生根对象
4,往根对象里加数据
5,把XML内存对象写到文件
下面是一个创建XML文档的简单实例:
import xml.dom.minidom #在内存中创建一个空的文档 时间=doc xml.dom.minidom.Document () #创建一个根节点经理对象 时间=root doc.createElement(& # 39;经理# 39;) #设置根节点的属性 root.setAttribute(& # 39;公司# 39;,,& # 39;xx科技& # 39;) root.setAttribute(& # 39;地址# 39;,,& # 39;科技软件园& # 39;) #将根节点添加到文档对象中 doc.appendChild(根) managerList =,[{& # 39;名字# 39;,:,& # 39;快乐# 39;,,& # 39;年龄# 39;,:,27日,& # 39;性与# 39;,:,& # 39;女& # 39;}, {& # 39;名字# 39;,:,& # 39;汤姆# 39;,,& # 39;年龄# 39;,:,30日,& # 39;性与# 39;,:,& # 39;男& # 39;}, {& # 39;名字# 39;,:,& # 39;ruby # 39;,, & # 39;年龄# 39;,:,29日,& # 39;性与# 39;,:,& # 39;女& # 39;} ] for 小姐:managerList 拷贝: 时间=nodeManager doc.createElement(& # 39;经理# 39;) 时间=nodeName doc.createElement(& # 39;名字# 39;) #给叶子节点名字设置一个文本节点,用于显示文本内容 nodeName.appendChild (doc.createTextNode (str(我[& # 39;名字# 39;)))) 时间=nodeAge doc.createElement (“age") nodeAge.appendChild (doc.createTextNode (str(我[“age"]))) 时间=nodeSex doc.createElement (“sex") nodeSex.appendChild (doc.createTextNode (str(我[“sex"]))) #将各叶子节点添加到父节点管理器中, #最后将经理添加到根节点经理中 nodeManager.appendChild(节点名) nodeManager.appendChild (nodeAge) nodeManager.appendChild (nodeSex) root.appendChild (nodeManager) #开始写xml文档 时间=fp 开放(& # 39;c: \ \ wcx \ \ Manager.xml& # 39;,, & # 39; w # 39;) doc.writexml (fp,缩进=& # 39;\ t # 39;,, addindent=& # 39; \ t # 39;,, newl=& # 39; \ n # 39;,,编码=皍tf-8")
执行结果:
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; & lt; Managers 地址=翱萍既砑啊?公司=皒x科技“比; & lt; Manager> & lt; name> joy & lt; age> 27 & lt;/age> & lt; sex>女& lt;/sex> & lt;/Manager> & lt; Manager> & lt; name> tom & lt; age> 30 & lt;/age> & lt; sex>男& lt;/sex> & lt;/Manager> & lt; Manager> & lt; name> ruby & lt; age> 29日& lt;/age> & lt; sex>女& lt;/sex> & lt;/Manager> & lt;/Managers>
用Python自带的写xml文档的API去写,比较方便,后期容易维护。如果直接用打开文件的方式,一行一行的去写,比较费时,也难以维护。
<强> xml.dom模块创建xml的部分API 强>
minidom.Document ()
创建一个空白xml文档树对象。
每个xml文档都是一个文档对象,代表着内存中的DOM树。
doc。createElement (tagName)
生成xml文档节点。参数表示要生成节点的名称。
如:(注意这里使用的例子都来自于上面创建xml文档的程序中,下同)
#创建一个根节点经理对象 时间=root doc.createElement(& # 39;经理# 39;)
节点。setAttribute (attname,值)
给节点添加属性值对(属性).
参数说明:
attname:属性的名称
值:属性的值
如:
设置根节点的属性:
root.setAttribute(& # 39;公司# 39;,,& # 39;xx科技& # 39;)
doc.createTextNode(数据)
给叶子节点添加文本节点。如:
#给叶子节点名字设置一个文本节点,用于显示文本内容 nodeName.appendChild (doc.createTextNode (str(我[& # 39;名字# 39;])))
node.appendChild (node1)
将节点node1t添加到节点节点下。如:
#将叶子节点nodeName添加到父节点nodeManager下 nodeManager.appendChild(节点名)
doc。writexml()即可
函数原型:
writexml(作家,缩进=& # 39;& # 39;,,addindent=& # 39; & # 39;,, newl=& # 39; & # 39;,,编码=None)
将内存中xml文档树写入文件中。