python 6-4 如何构建xml文档使用标准库中的xml.etree.ElementTree 构建ElementTree,使用write方法写入文档

python 6-4 如何构建xml文档使用标准库中的xml.etree.ElementTree 构建ElementTree,使用write方法写入文档
root=minidom.Document()

”’

6-4 如何构建xml文档
使用标准库中的xml.etree.ElementTree 构建ElementTree,使用write方法写入文档

”’

from xml.dom.minidom import parse
from xml.dom import minidom
from xml.etree.ElementTree import Element,ElementTree,tostring

e=Element('Data')
e.set('name','abc')
e.text="123"
print tostring(e)
e2=Element("Row") 
e3=Element("Open")
e3.text='8.80'
e2.append(e3)
print tostring(e2)
e.append(e2)
e.text=None
print tostring(e)
et=ElementTree(e)
et.write("test.xml")

import csv
def csvToXml(fname):
    with open(fname,'rb') as fr:
        reader=csv.reader(fr)
        headers=reader.next()
        root=Element('Data')
        for row in reader:
            eRow=Element('Row')
            root.append(eRow)
            for tag,text in zip(headers,row):
                e=Element(str(tag).replace(" ", "_"))
                e.text=text
                eRow.append(e)
    pretty(root)
    return ElementTree(root)

def pretty(e,level=0):
    if len(e) >0:
        e.text='\n' + '\t'*(level+1)
        for child in e:
            pretty(child,level+1)
        child.tail=child.tail[:-1]
    e.tail='\n' + '\t'*level

et=csvToXml('pingan.csv')
et.write("pingan.xml")

def createXmlFromCsv():
    root=minidom.Document()
    dataElement=root.createElement("Data")

    with open("pingan.csv") as fr:
        reader=csv.reader(fr)
        headers=reader.next()
        for row in reader:
            rowElement=root.createElement("Row")
            for tag,text in zip(headers,row):
                item=root.createElement(tag)
                item.appendChild(root.createTextNode(text))
                rowElement.appendChild(item)
            dataElement.appendChild(rowElement)

    return root.appendChild(dataElement)

print "test...."
with open("pingan3.xml","wb") as log:
    log.write(createXmlFromCsv().toprettyxml())
log.close()

版权声明:本文为u013679490原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。