Python学习总结笔记(1)--Dom XML操作
来源:互联网 发布:cs1.5和1.6知乎 编辑:程序博客网 时间:2024/06/06 05:35
Python用来操作XML格式文档有两种方法,一种是Dom方式,将文档全部在内存中操作,然后导出到磁盘中,优点是操作方便,适合小文件,缺点是占用内存大;另外一种是Sax方式,采用的是一种流操作的模式,边读取,边解析,缺点是不方便解析,需要我们自己处理相关事件。
一般我们操作的xml文件不会太大,所以采用Dom方式是个不错的选择。
用下面的XML文件为例(test.xml):
<?xml version='1.0' encoding='UTF-8' ?><users> <user id='1'> <username>admin</username> <email>admin@qq.com</email> <age>23</age> </user> <user id='2'> <username>user</username> <email>user@qq.com</email> <age>22</age> </user></users>
0x01 解析XML
#/usr/bin/env python#coding:utf-8__author__='kikay''''Dom方式读取XML格式文档'''import xml.dom.minidom as XmlDocument#加载文件到内存doc=XmlDocument.parse('test.xml')#根节点usersxUsers=doc.getElementsByTagName('users')if xUsers and len(xUsers)>0: #读取user节点迭代式 xUserList=xUsers[0].getElementsByTagName('user') for user in xUserList: #读取属性id id=user.attributes['id'].value print 'user id: ',id #读取用户名 xUsername=user.getElementsByTagName('username') if xUsername and len(xUsername)>0: username=xUsername[0].firstChild.data print 'user name: ',username #读取电子邮箱 xEmail=user.getElementsByTagName('email') if xEmail and len(xEmail)>0: email=xEmail[0].firstChild.data print 'email: ',email #读取年龄 xAge=user.getElementsByTagName('age') if xAge and len(xAge)>0: age=xAge[0].firstChild.data print 'age: ',age
0x02 生成XML
#/usr/bin/env python#coding:utf-8__author__='kikay'''' XmlWriter.py: Dom方式生成XML格式文档'''import xml.dom.minidom as XmlDocument#定义XML文档对象doc=XmlDocument.Document()#创建根节点xUsers=doc.createElement('users')doc.appendChild(xUsers)#添加用户1xUser=doc.createElement('user')xUsers.appendChild(xUser)xUser.attributes['id']='1'xUsername=doc.createElement('username')xUser.appendChild(xUsername)xUsername.appendChild(doc.createTextNode('admin'))xEmail=doc.createElement('email')xUser.appendChild(xEmail)xEmail.appendChild(doc.createTextNode('admin@qq.com'))xAge=doc.createElement('age')xUser.appendChild(xAge)xAge.appendChild(doc.createTextNode('23'))#添加用户2xUser=doc.createElement('user')xUsers.appendChild(xUser)xUser.attributes['id']='2'xUsername=doc.createElement('username')xUser.appendChild(xUsername)xUsername.appendChild(doc.createTextNode('user'))xEmail=doc.createElement('email')xUser.appendChild(xEmail)xEmail.appendChild(doc.createTextNode('user@qq.com'))xAge=doc.createElement('age')xUser.appendChild(xAge)xAge.appendChild(doc.createTextNode('22'))#保存with open('test.xml','w') as f: f.write(doc.toxml(encoding='utf-8'))
2 0
- Python学习总结笔记(1)--Dom XML操作
- xml学习笔记!(DOM的基本操作)
- python 学习笔记之 dom(xml 文件创建)
- XML DOM 学习总结!
- python使用dom操作xml
- python dom解析xml 总结
- [XML]学习笔记(九)DOM
- JavaEE学习笔记--JavaScript之xml dom常见API总结
- Python xml.dom.minidom 操作XML文件
- PHPl使用DOM XML操作XML[总结]
- jquery学习总结(二) 操作DOM
- XML DOM学习笔记(JS)
- 疯狂XML学习笔记(5)-----------XML DOM
- 疯狂XML学习笔记(13)---------XML DOM
- Python学习笔记之文件操作总结
- js dom操作学习笔记
- javaScript操作DOM学习笔记
- xml学习笔记②PHP DOM--对xml文件进行解析操作
- malloc,realloc,calloc的介绍与区别
- 有关启动
- 方便学习用的
- JUnit4,SVN版本控制工具--24
- springMVC+struts2(传值,取值) +hibernate
- Python学习总结笔记(1)--Dom XML操作
- python与C#的互相调用
- ACM JiLi Number
- gdb的基本使用
- 用微信小程序开发的Canvas绘制可配置的转盘抽奖
- 文件编程
- 编程实践8—升级 Elasticsearch5.0 之 License
- Linux下的C语言编程——文件存储链表实现的通讯录
- 约瑟夫问题