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()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值