Python中使用SAX解析xml实例


Posted in Python onNovember 21, 2014

SAX是一种基于事件驱动的API。利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器。解析器负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件;而事件处理器则负责对事件作出相应,对传递的XML数据进行处理。

实例:

import  sys, string from  xml.sax import  handler, make_parser

 

 class  TestHandler(handler.ContentHandler):                        

         def  __init__(self):                                                                

                 pass

                 

         def  startDocument(self):            

                 print  "Document Start ..."

                

        def  endDocument(self):                 

                print  "Document End ..."

                

        def  startElement(self, name, attrs):

                print  'start tag:', name

                

        def  endElement(self, name):

                print  'end tag:', name     

                

        def  characters(self, chrs):                                                     

                print  chrs

                

     

def  test():     

        handler = TestHandler()     

        parser = make_parser()     

        parser.setContentHandler(handler)

        f = open(sys.argv[1], 'r')     

        parser.parse(f)     

        f.close()

     

if  __name__ == '__main__':

        test()

除了DOM外的另一种读写文件的方式。

Python 相关文章推荐
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
Django集成搜索引擎Elasticserach的方法示例
Jun 04 Python
python实现倒计时小工具
Jul 29 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
基于python3生成标签云代码解析
Feb 18 Python
jupyter notebook 增加kernel教程
Apr 10 Python
Python工程师必考的6个经典面试题
Jun 28 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
python怎么对数字进行过滤
Jul 05 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 Python
python sort、sorted高级排序技巧
Nov 21 #Python
python中global与nonlocal比较
Nov 21 #Python
python装饰器decorator介绍
Nov 21 #Python
python多线程操作实例
Nov 21 #Python
Python中的闭包详细介绍和实例
Nov 21 #Python
Python多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 #Python
python多进程操作实例
Nov 21 #Python
You might like
一个ubbcode的函数,速度很快.
2006/10/09 PHP
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
Flask框架Flask-Login用法分析
2018/07/23 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
九年级化学教学反思
2014/01/28 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers