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()