利用 Python ElementTree 生成 xml的实例
Python处理xml文档的方法有很多,除了经典的sax和dom之外,还有一个ElementTree。
首先import之:
fromxml.etreeimportElementTreeasetree
然后开始构建xml树:
fromxml.etree.ElementTreeimportElement,SubElement,ElementTree #生成根节点 root=Element('root') #生成第一个子节点head head=SubElement(root,'head') #head节点的子节点 title=SubElement(head,'title') title.text='WellDola!' #生成root的第二个子节点body body=SubElement(root,'body') #body的内容 body.text='IloveDola!' tree=ElementTree(root)
这样就得到了一个xml树的对象tree以及它的根节点的对象root
接着我们把它们变成xml串,有两个办法,一个是用tree对象的write方法将xml内容写成一个文件,还有一个是用etree的tostring方法转成xml字符串:
#第一种 tree.write('result.xml',encoding='utf-8') #第二种 xml_string=etree.tostring(root) #xml_string就是xml字符串了
但是第二种有一个问题,就是它没有
这个头部定义内容:
'
' WellDola! IloveDola!
怎么办呢?
有一个办法是使用minidom来实现,方法如下:
fromxml.domimportminidom #使用minidom解析 tree=minidom.parseString(xml_string) #重新生成xml字符串 xml_string=tree.toxml()
虽然让计算机多运行了一些代码,但是这样可以把问题解决掉。
最后生成的xml代码如下:
u'
' WellDola! IloveDola!
当然还可以使用minidom中tree对象的toprettyxml方法把xml打得漂亮一点。
补充知识:PythonElementTree导出xml缺少开头声明
使用ElementTree修改完xml后,写入文件时,发现开头缺少了
解决办法:
在调用ElementTree的write方法写入xml时,参数里增加encoding=‘utf-8'以及xml_declaration=True
et_root.write('file。xml',encoding='utf-8',xml_declaration=True)
以上这篇利用PythonElementTree生成xml的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。