位置: 编程技术 - 正文

横向对比分析Python解析XML的四种方式(横向对比分析两个人关系的意义)

发布时间:2024-02-27

推荐整理分享横向对比分析Python解析XML的四种方式(横向对比分析两个人关系的意义),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:横向对比分析法,横向对比分析优势,横向对比分析表格,横向对比分析法和纵向对比分析法的区别,横向对比分析怎么写,横向对比分析法和纵向对比分析法的区别,横向对比分析法和纵向对比分析法的区别,横向对比分析法,内容如对您有帮助,希望把文章链接给更多的朋友!

在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受。

在网络搜索后发现,目前应用比较广泛,且效率相对较高的ElementTree也是一个比较多人推荐的算法,于是拿这个算法来实测对比,ElementTree也包括两种实现,一个是普通ElementTree(ET),一个是ElementTree.iterparse(ET_iter)。

本文将对DOM、SAX、ET、ET_iter四种方式进行横向对比,通过处理相同文件比较各个算法的用时来评估其效率。

程序中将四种解析方法均写为函数,在主程序中分别调用,来评估其解析效率。

解压后的XML文件内容示例为:

主程序函数调用部分代码为:

在最初的函数调用中函数返回两个值,但接收函数调用值时用两个变量分别调用,导致每个函数都要执行两次,之后修改为一次调用两个变量接收返回值,减少了无效调用。

1、DOM解析

函数定义代码:

程序运行结果:

**************************************************程序处理启动。输入目录为:/tmcdata/mro2csv/input/。输出目录为:/tmcdata/mro2csv/output/。输入目录下.gz文件个数为:,本次处理其中的个。**************************************************文件计数:1/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:2/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:3/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:………………………………………文件计数:/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:VS行计数:,运行时间:.,每秒处理行数:。已写入:/tmcdata/mro2csv/output/mro_.csv。

横向对比分析Python解析XML的四种方式(横向对比分析两个人关系的意义)

**************************************************程序处理结束。由于DOM解析需要将整个文件读入内存,并建立树结构,其内存消耗和时间消耗都比较高,但其优点在于逻辑简单,不需要定义回调函数,便于实现。

2、SAX解析

函数定义代码:

程序运行结果:

**************************************************程序处理启动。输入目录为:/tmcdata/mro2csv/input/。输出目录为:/tmcdata/mro2csv/output/。输入目录下.gz文件个数为:,本次处理其中的个。**************************************************文件计数:1/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:2/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:3/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:.........................................文件计数:/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:VS行计数:,运行时间:.,每秒处理行数:。已写入:/tmcdata/mro2csv/output/mro_.csv。

**************************************************程序处理结束。SAX解析相比DOM解析,运行时间大幅缩短,由于SAX采用逐行解析,对于处理较大文件其占用内存也少,因此SAX解析是目前应用较多的一种解析方法。其缺点在于需要自己实现回调函数,逻辑较为复杂。

3、ET解析

函数定义代码:

程序运行结果:

**************************************************程序处理启动。输入目录为:/tmcdata/mro2csv/input/。输出目录为:/tmcdata/mro2csv/output/。输入目录下.gz文件个数为:,本次处理其中的个。**************************************************文件计数:1/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:2/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:3/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:...........................................文件计数:/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:VS行计数:,运行时间:4.,每秒处理行数:。已写入:/tmcdata/mro2csv/output/mro_.csv。

**************************************************程序处理结束。相较于SAX解析,ET解析时间更短,并且函数实现也比较简单,所以ET具有类似DOM的简单逻辑实现且匹敌SAX的解析效率,因此ET是目前XML解析的首选。

4、ET_iter解析

函数定义代码:

程序运行结果:

**************************************************程序处理启动。输入目录为:/tmcdata/mro2csv/input/。输出目录为:/tmcdata/mro2csv/output/。输入目录下.gz文件个数为:,本次处理其中的个。**************************************************文件计数:1/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:2/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:3/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:...................................................文件计数:/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:VS行计数:,运行时间:3.,每秒处理行数:。已写入:/tmcdata/mro2csv/output/mro_.csv。

**************************************************程序处理结束。在引入了ET_iter解析后,解析效率比ET提升了近%,而相较于DOM解析更是提升了倍,在解析效率提升的同时,由于其采用了iterparse这个循序解析的工具,其内存占用也是比较小的。

所以,小伙伴们,请好好利用这几种工具吧。

标签: 横向对比分析两个人关系的意义

本文链接地址:https://www.jiuchutong.com/biancheng/384414.html 转载请保留说明!

上一篇:python简单实现刷新智联简历

下一篇:Python内置的HTTP协议服务器SimpleHTTPServer使用指南

  • 增值税申报可以作废几次
  • 自然人电子税务局
  • 海关完税价格计算公式
  • 机动车发票税率怎么算
  • 公司收到借款利息收入要交增值税吗
  • 租赁合同印花税率
  • 所得税季报中营业外收入填哪里
  • 缴纳个人社保在哪里可以缴
  • 股东退股如何清算表格
  • 附加税减半征收会计分录
  • 银行基本户可以变更成一般户吗
  • 建设工程未交付什么意思
  • 购置办公用品有什么好处
  • 这部分房屋是否可以抵押
  • 外商投资企业清算报告
  • 商业企业的商品销售额、职工人数是( )
  • 股权转让过渡期损益会计处理
  • 外币账户间互转流程
  • 一次性补缴的社保能全额退吗
  • 公会经费开具的法律依据
  • 企业所得税的减按征收如何计算
  • 出口退税备案信息
  • 收到培训机构的电话骚扰该怎么办?
  • 公司向外单位借款摘要怎么写
  • 事业基金弥补收支差额
  • 低值易耗品怎么结转
  • 个体工商户申报流程图
  • 教育预收费
  • 汇兑损益怎么记账
  • 维修是几个点的税率
  • php图片拼接
  • typecho插件开发教程
  • 计提本月应交税金会计分录
  • emsm是什么意思
  • 新开的酒店怎么做宣传
  • 秋分日的时间意义庆祝方式
  • 委托代销商品两种方式会计分录
  • 汇算清缴补交的所得税怎么记帐
  • yii2-admin
  • vue怎么打断点
  • 利用html css javascript做一个网页
  • MYSQL explain 执行计划
  • sqlserver还原数据库一直显示正在执行0%
  • 5月份工作重点
  • 发票上的收款人和复核人不写可以吗
  • 补充登记法的操作步骤
  • 卖二手车怎么做账务处理
  • 可转换债券的转换比率计算公式
  • 社会保险费计提分录
  • 不得从销项税额中抵扣进项税的有哪些
  • 红冲上一年度销售收入
  • 股东变更需要哪些资料和手续
  • 会计科目中英文对照表下载
  • mysql批量添加字段
  • Ubuntu 15.04系统怎么安装Visual Studio Code 2015?
  • mac怎么打开访达功能
  • SpamSubtract.exe - SpamSubtract是什么进程
  • Win7系统重装后鼠标键盘不能用怎么办
  • win10虚拟机无法安装
  • centos6.8修改主机名
  • 如何使桌面图标透明
  • win7自带软件在哪里
  • Linux磁盘配额步骤
  • unix2dos linux实现
  • win7系统电脑怎么开热点
  • win10家庭版专业版教育版
  • windows10 rs4
  • javascript运用
  • javascript 操作css
  • js中使用组件
  • css样式表规则由什么组成
  • easyui导出excel表格
  • Unity小贴士 导出资源文件和简单加密方式
  • jquery22插件网
  • android获取屏幕大小
  • 安卓开发常见问题
  • 宁波国税局领导名单
  • 驻马店燃气投诉电话号码
  • 保险行业税务处理
  • 深圳市税务网上注销流程图
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号