zoukankan      html  css  js  c++  java
  • python创建xml

    参考了http://www.cnblogs.com/wangshide/archive/2011/10/29/2228936.html中的实现了一遍

    # -*- coding: utf-8 -*-
    """
    Created on Fri Apr 01 15:37:46 2016

    @author: raoqiang
    """
    #coding=utf-8
    import xml.dom.minidom as minidom

    from xml.dom.minidom import Document

    doc = Document() #创建DOM文档对象


    def create_annotation(doc,file)

    Annot = doc.createElement('annotation') #创建根元素
    doc.appendChild(Annot)
    folder = doc.createElement('folder')
    folder_text = doc.createTextNode('myfolderPath') #元素内容写入
    folder.appendChild(folder_text)
    Annot.appendChild(folder)

    fName = doc.createElement('filename')
    fName_text = doc.createTextNode('0001.png') #元素内容写入
    fName.appendChild(fName_text)
    Annot.appendChild(fName)

    src = doc.createElement('source')
    db = doc.createElement('database')
    db_text = doc.createTextNode('the Synapse DataBase');
    db.appendChild(db_text)
    src.appendChild(db)
    annt = doc.createElement('annotation')
    annt_text = doc.createTextNode('the Synapse DataBase');
    annt.appendChild(annt_text)
    src.appendChild(db)
    img= doc.createElement('image')
    img_text = doc.createTextNode('synapseEM')
    img.appendChild(img_text)
    src.appendChild(img)
    flickrid = doc.createElement('flickrid')
    flickrid_text = doc.createTextNode(str(0))
    flickrid.appendChild(flickrid_text)
    src.appendChild(flickrid)

    Annot.appendChild(src)

    owner = doc.createElement('owner')
    flickrid = doc.createElement('flickrid')
    flickrid_text = doc.createTextNode('I do not know')
    flickrid.appendChild(flickrid_text)
    owner.appendChild(flickrid)

    Annot.appendChild(owner)

    size = doc.createElement('size')
    width = doc.createElement('width')
    width_text = doc.createTextNode(str(239))
    width.appendChild(width_text)
    size.appendChild(width_text)

    height = doc.createElement('height')
    height_text = doc.createTextNode(str(239))
    height.appendChild(height_text)
    size.appendChild(height_text)

    depth = doc.createElement('depth')
    depth_text = doc.createTextNode(str(1))
    depth.appendChild(depth_text)
    size.appendChild(depth_text)

    Annot.appendChild(owner)

    seg = doc.createElement('segmented')
    seg_text = doc.createTextNode(str(0))
    seg.appendChild(seg_text)

    Annot.appendChild(seg)

    obj = doc.createElement('object')

    name = doc.createElement('name')
    name_text = doc.createTextNode('synapse');
    name.appendChild(name_text)
    obj.appendChild(name)


    pos = doc.createElement('pose')
    pos_text = doc.createTextNode('Unspecified')
    pos.appendChild(pos_text)

    obj.appendChild(pos)


    trun = doc.createElement('truncated')
    trun_text = doc.createTextNode(str(0))
    trun.appendChild(trun_text)

    obj.appendChild(trun)

    diffi = doc.createElement('difficult')
    diffi_text = doc.createTextNode(str(0))
    diffi.appendChild(diffi_text)

    obj.appendChild(diffi)


    bndbox = doc.createElement('bndbox')
    xmin = doc.createElement('xmin')
    xmin_text = doc.createTextNode(str(157))
    xmin.appendChild(xmin_text)
    bndbox.appendChild(xmin)

    xmax = doc.createElement('xmax')
    xmax_text = doc.createTextNode(str(157))
    xmax.appendChild(xmax_text)
    bndbox.appendChild(xmax)

    ymin = doc.createElement('ymin')
    ymin_text = doc.createTextNode(str(157))
    ymin.appendChild(ymin_text)
    bndbox.appendChild(ymin)

    ymax = doc.createElement('ymax')
    ymax_text = doc.createTextNode(str(157))
    ymax.appendChild(ymax_text)
    bndbox.appendChild(ymax)

    obj.appendChild(bndbox)

    Annot.appendChild(obj)

    ########### 将DOM对象doc写入文件
    f = open('D:\LabProj\faster_rcnn\annotation.xml','w')
    f.write(doc.toprettyxml(indent = ''))
    f.close()

    生成了如下的xml:基本照这个例子就可以学会怎么创建节点和生成数据,关于其中变量的操作还有别的函数

    <?xml version="1.0"?>

    -<annotation>

    <folder>myfolderPath</folder>

    <filename>0001.png</filename>


    -<source>

    <database>the Synapse DataBase</database>

    <image>synapseEM</image>

    <flickrid>0</flickrid>

    </source>


    -<owner>

    <flickrid>I do not know</flickrid>

    </owner>

    <segmented>0</segmented>


    -<object>

    <name>synapse</name>

    <pose>Unspecified</pose>

    <truncated>0</truncated>

    <difficult>0</difficult>


    -<bndbox>

    <xmin>157</xmin>

    <xmax>157</xmax>

    <ymin>157</ymin>

    <ymax>157</ymax>

    </bndbox>

    </object>

    </annotation>

  • 相关阅读:
    51.N皇后问题
    Record -「CSP-S 2020」赛后总结
    Solution -「洛谷 P4451」「国家集训队」整数的 lqp 拆分
    Solution -「洛谷 P5048」「YunoOI 2019 模拟赛」Yuno loves sqrt technology III
    Solution -「洛谷 P5355」「YunoOI 2017」由乃的玉米田
    Solution -「洛谷 P5610」「YunoOI 2013」大学
    Solution -「洛谷 P5046」「YunoOI 2019 模拟赛」Yuno loves sqrt technology I
    Solution -「洛谷 P5072」「YunoOI 2015」盼君勿忘
    Solution -「洛谷 P4688」「YunoOI 2016」掉进兔子洞
    软件无痕清除目录
  • 原文地址:https://www.cnblogs.com/Erdos001/p/5345479.html
Copyright © 2011-2022 走看看