python有三种方法解析XML:SAX,DOM,以及ElementTree
SAX:python 标准库包含SAX解析器,SAX用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。
- 解析器负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件;
- 而事件处理器则负责对事件作出相应,对传递的XML数据进行处理。
- 解析器负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件,而事件处理器则负责对事件作出相应,对传递的XML数据进行处理。
1、对大型文件进行处理;
2、只需要文件的部分内容,或者只需从文件中得到特定信息。
3、想建立自己的对象模型的时候。
DOM:将XML数据在内存中解析成一个树,通过对树的操作来操作XML。
1.doc=parse(filename) 2.root=doc.documentElement 3.movies=root.getElementsByTagName("movie") 4.for movie in movies: 获取movie的每个子节点 获取子节点的值.childNade[0].data
ElementTree
类似一个轻量级的dom 消耗内存少
- parse(<路径>):
返回一个xml.etree.ElementTree.ElementTree对象
- findall(“./<标签>”):
返回一个list对象 ,存放着指定标签的xml.etree.ElementTree.Element元素对象