python处理各种xml文件(Python使用sax模块解析XML文件示例)
类别:脚本大全 浏览量:1953
时间:2021-10-22 07:30:37 python处理各种xml文件
Python使用sax模块解析XML文件示例本文实例讲述了Python使用sax模块解析XML文件。分享给大家供大家参考,具体如下:
XML样例:
|
<? xml version = "1.0" ?> < collection shelf = "New Arrivals" > < movie title = "Enemy Behind" > < type >War, Thriller</ type > < format >DVD</ format > < year >2003</ year > < rating >PG</ rating > < stars >10</ stars > < description >Talk about a US-Japan war</ description > </ movie > < movie title = "Transformers" > < type >Anime, Science Fiction</ type > < format >DVD</ format > < year >1989</ year > < rating >R</ rating > < stars >8</ stars > < description >A schientific fiction</ description > </ movie > < movie title = "Trigun" > < type >Anime, Action</ type > < format >DVD</ format > < episodes >4</ episodes > < rating >PG</ rating > < stars >10</ stars > < description >Vash the Stampede!</ description > </ movie > < movie title = "Ishtar" > < type >Comedy</ type > < format >VHS</ format > < rating >PG</ rating > < stars >2</ stars > < description >Viewable boredom</ description > </ movie > </ collection > |
SAX解析代码展示:
|
from xml import sax class MovieHandler(sax.ContentHandler): def __init__( self ): # 初始化数据,并增加一个当前数据 self .CurrentData = "" self . type = "" self . format = "" self .year = "" self .rating = "" self .stars = "" self .description = "" # 文档启动的时候调用 def startDocument( self ): print ( 'XML开始解析中...' ) # 元素开始事件处理 def startElement( self , name, attrs): self .CurrentData = name if self .CurrentData = = 'movie' : print ( '*********movie*********' ) title = attrs[ 'title' ] print ( 'Title:{0}' . format (title)) # 内容事件处理 def characters( self , content): if self .CurrentData = = "type" : self . type = content elif self .CurrentData = = "format" : self . format = content elif self .CurrentData = = "year" : self .year = content elif self .CurrentData = = "rating" : self .rating = content elif self .CurrentData = = "stars" : self .stars = content elif self .CurrentData = = "description" : self .description = content # 元素结束事件处理 def endElement( self , name): if self .CurrentData = = 'type' : print ( 'Type:{0}' . format ( self . type )) elif self .CurrentData = = 'format' : print ( 'Format:{0}' . format ( self . format )) elif self .CurrentData = = 'year' : print ( 'Year:{0}' . format ( self .year)) elif self .CurrentData = = 'rating' : print ( 'Rating:{0}' . format ( self .rating)) elif self .CurrentData = = 'stars' : print ( 'Stars:{0}' . format ( self .stars)) elif self .CurrentData = = 'description' : print ( 'Description:{0}' . format ( self .description)) self .CurrentData = "" # 文档结束的时候调用 def endDocument( self ): print ( 'XML文档解析结束!' ) if __name__ = = '__main__' : handler = MovieHandler() parser = sax.make_parser() # parser.setFeature(sax.handler.feature_namespaces, 0) parser.setContentHandler(handler) parser.parse( "sax_test.xml" ) |
PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:
在线格式化XML/在线压缩XML:https://tool.zzvips.com/t/xml/
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://www.cnblogs.com/wcwnina/p/7233386.html
您可能感兴趣
- python 从入门到实践笔记(python基础梳理一推荐)
- python3下urllib案例(URL Rewrite Module 2.1 URL重写模块规则写法)
- python爬虫经典步骤(详解python爬虫系列之初识爬虫)
- python爬虫模块教程(Python爬虫之UserAgent的使用实例)
- python字典的值排序(python 对字典按照value进行排序的方法)
- python scrapy爬虫教程视频(详解python3 + Scrapy爬虫学习之创建项目)
- python图像变换教程(详解python-图像处理映射变换)
- pythonhttp文件服务器(使用Python创建简单的HTTP服务器的方法步骤)
- python列表和条件组合的处理(一篇文章带你弄懂Python基础之列表相关操作和嵌套)
- python如何获取列表值(Python中按键来获取指定的值)
- pythonfor循环如何遍历嵌套列表(在Python中,不用while和for循环遍历列表的实例)
- 超简单使用Python换脸实例(超简单使用Python换脸实例)
- python3标准库资源(Python3标准库总结)
- python 导入指定文件夹的模块(Python实现的在特定目录下导入模块功能分析)
- python的基本函数及用法(Python3.6.x中内置函数总结及讲解)
- python怎么导入beautifulsoup元素(python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比)
- 冰岛旅游攻略(冰岛旅游攻略及花费)
- 为什么现在年轻人越来越喜欢买衣服(为什么现在年轻人越来越喜欢买衣服穿)
- 怎么做好SEO(怎么做好seo内容优化)
- 冬季钓鱼子线用 长 还是 短(冬季钓鱼子线用)
- 鱼竿 夏钓短,冬钓长 ,一定是这样 认清优缺点在选竿(鱼竿夏钓短冬钓长)
- 鲢鳙钓底还是钓浮 流水的水域应怎样做钓(鲢鳙钓底还是钓浮)
热门推荐
- python plot绘图(python使用Plotly绘图工具绘制气泡图)
- docker 命令上传镜像到镜像仓库(Docker 制作镜像Dockerfile和commit操作)
- phpsetcookie参数说明(PHP的cookie与session原理及用法详解)
- sql server 实例功能(SQL Server简单查询示例汇总)
- docker compose 与docker区别(windows安装Docker与docker-compose套装的详细教程)
- nginx怎么进一步配置(Nginx已编译的nginx-添加新模块)
- dede网站地图模块(Dedecms中百度网站地图制作的方法图文教程)
- python计算csv的行数(对Python 多线程统计所有csv文件的行数方法详解)
- zabbix怎么获取监控(Zabbix如何通过ssh监控获取网络设备数据)
- mysql binlog如何查看(MySQL binlog_ignore_db 参数的具体使用)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9