最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 如何用python生成xml

    正文概述    2020-01-04   280

    如何用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()
    #创建一个根节点Managers对象
    root = doc.createElement('Managers')
    #设置根节点的属性
    root.setAttribute('company', 'xx科技')
    root.setAttribute('address', '科技软件园')
    #将根节点添加到文档对象中
    doc.appendChild(root)
    managerList = [{'name' : 'joy', 'age' : 27, 'sex' : '女'},
    {'name' : 'tom', 'age' : 30, 'sex' : '男'},
    {'name' : 'ruby', 'age' : 29, 'sex' : '女'}
    ]
    for i in managerList :
    nodeManager = doc.createElement('Manager')
    nodeName = doc.createElement('name')
    #给叶子节点name设置一个文本节点,用于显示文本内容
    nodeName.appendChild(doc.createTextNode(str(i['name'])))
    nodeAge = doc.createElement("age")
    nodeAge.appendChild(doc.createTextNode(str(i["age"])))
    nodeSex = doc.createElement("sex")
    nodeSex.appendChild(doc.createTextNode(str(i["sex"])))
    #将各叶子节点添加到父节点Manager中,
    #最后将Manager添加到根节点Managers中
    nodeManager.appendChild(nodeName)
    nodeManager.appendChild(nodeAge)
    nodeManager.appendChild(nodeSex)
    root.appendChild(nodeManager)
    #开始写xml文档
    fp = open('c:\\wcx\\Manager.xml', 'w')
    doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")

    执行结果:

    <?xml version="1.0" encoding="utf-8"?>
    <Managers address="科技软件园" company="xx科技">
    <Manager>
    <name>joy</name>
    <age>27</age>
    <sex>女</sex>
    </Manager>
    <Manager>
    <name>tom</name>
    <age>30</age>
    <sex>男</sex>
    </Manager>
    <Manager>
    <name>ruby</name>
    <age>29</age>
    <sex>女</sex>
    </Manager>
    </Managers>

    用Python自带的写xml文档的API去写,比较方便,后期容易维护。如果直接用打开文件的方式,一行一行的去写,比较费时,也难以维护。

    xml.dom模块创建xml的部分API

    minidom.Document()

    创建一个空白xml文档树对象。

    每个xml文档都是一个Document对象,代表着内存中的DOM树。

    doc. createElement(tagName)

    生成xml文档节点。参数表示要生成节点的名称。

    如:(注意这里使用的例子都来自于上面创建xml文档的程序中,下同)

    #创建一个根节点Managers对象
    root = doc.createElement('Managers')

    node.setAttribute(attname, value)

    给节点添加属性值对(Attribute)。

    参数说明:

    attname :属性的名称

    value :属性的值

    如:

    设置根节点的属性:

    root.setAttribute('company', 'xx科技')

    doc.createTextNode(data)

    给叶子节点添加文本节点。如:

    #给叶子节点name设置一个文本节点,用于显示文本内容
    nodeName.appendChild(doc.createTextNode(str(i['name'])))

    node.appendChild(node1)

    将节点node1t添加到节点node下。如:

    #将叶子节点nodeName添加到父节点nodeManager下
    nodeManager.appendChild(nodeName)

    doc. writexml()

    函数原型:

    writexml(writer, indent='', addindent='', newl='', encoding=None)

    将内存中xml文档树写入文件中。

    参数说明:

    writer :要写的目标文件的文件对象。

    indent :

    fp = open('c:\\Manager.xml', 'w')
    doc.writexml(fp, indent='', addindent='\t', newl='\n', encoding="utf-8")

    python学习网,免费的在线学习python平台,欢迎关注!


    起源地下载网 » 如何用python生成xml

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元