位置: 编程技术 - 正文

Python存取XML的常见方法实例分析(python提取xml的值)

编辑:rootadmin

推荐整理分享Python存取XML的常见方法实例分析(python提取xml的值),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python保存xml文件,python提取xml的值,python xml读取,python提取xml的值,python保存xml文件,python获取xml数据,python保存xml文件,python 读取xml文件并提取,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了Python存取XML的常见方法。分享给大家供大家参考,具体如下:

目前而言,Python 3.2存取XML有以下四种方法:

1.Expat2.DOM3.SAX4.ElementTree

以以下xml作为讨论依据

Expat

Expat是一个面向流的解析器。您注册的解析器回调(或handler)功能,然后开始搜索它的文档。当解析器识别该文件的指定的位置,它会调用该部分相应的处理程序(如果您已经注册的一个)。该文件被输送到解析器,会被分割成多个片断,并分段装到内存中。因此expat可以解析那些巨大的文件。

SAX

SAX是个循序存取XML的解析器API,一个实现SAX的解析器(也就是“SAX Parser”)以一个串流解析器的型式作用,拥有事件驱动API。由使用者定义回调函数,解析时,若发生事件的话会被调用。事件在任一XML特性遇到时引发,以及遇到他们结尾时再次引发。XML属性也作为传给元素事件资料的一部分。SAX 处理时单方向性的;解析过的资料无法在不重新开始的情况下再次读取。

DOM

DOM解析器在任何处理开始之前,必须把整棵树放在内存,所以DOM解析器的内存使用量完全根据输入资料的大小(相对来说,SAX解析器的内存内容,是只基于XML档案的最大深度(XML树的最大深度)和单一XML项目上XML属性储存的最大资料)。

DOM在python3.2中有两种实现方式:

1.xml.minidom是一个基本的实现。2.xml.pulldom只在需要时构建被访问的子树。

ElementTree

Python存取XML的常见方法实例分析(python提取xml的值)

目前搜到的ElementTree的信息较少,目前不知道其工作机制。有资料显示ElementTree近乎一种轻量级的DOM,但是ElementTree 所有的 Element 节点的工作方式是一致的。它很类似于C#中的XpathNavigator。

Compare:

就以上几点来说Expat和SAX解析XML方式相同,就是不知道性能相比怎样。DOM相对于以上两种解析器,消耗内存,而且由于存取耗时,所以处理文件相对来说慢。如果文件太大无法载入内存,DOM这种解析器就不能用了,但是对于,某些种类的XML验证需要存取整份文件,或者某些XML处理仅要求存取整份文件的需求时,DOM是唯一选择。

Note:

需要指出的是存取XML的这几项技术并不是Python独创的,Python也是通过借鉴其他语言或者直接从其他语言引入进来的。例如Expat就是一个用C语言开发的、用来解析XML文档的开发库。而SAX最初是由DavidMegginson采用java语言开发的,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。可以应用于任何编程语言。

做为对比我也想列举一下C#存取XML文档的方式:

1. 基于DOM的XmlDocument2. 基于流文件的XmlReader 和 XmlWriter(它和SAX流文件实现不同,SAX是事件驱动模型)。3. Linq to Xml

流文件两种模型:XmlReader/XMLWriter VS SAX

流模型每次迭代XML文档中的一个节点,适合于处理较大的文档,所耗内存空间小。流模型中有两种变体——“推”模型和“拉”模型。

推模型也就是常说的SAX,SAX是一种靠事件驱动的模型,也就是说:它每发现一个节点就用推模型引发一个事件,而我们必须编写这些事件的处理程序,这样的做法非常的不灵活,也很麻烦。

.NET中使用的是基于“拉”模型的实现方案,“拉”模型在遍历文档时会把感兴趣的文档部分从读取器中拉出,不需要引发事件,允许我们以编程的方式访问文档,这大大的提高了灵活性,在性能上“拉”模型可以选择性的处理节点,而SAX每发现一个节点都会通知客户机,从而,使用“拉”模型可以提高Application的整体效率。

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具: Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

使用Python生成XML的方法实例 本文实例讲述了使用Python生成XML的方法。分享给大家供大家参考,具体如下:1.bookstore.py#encoding:utf-8'''根据一个给定的XMLSchema,使用DOM树的形式从空白文

利用Python实现Windows定时关机功能 是最初的几个爬虫,让我认识了Python这个新朋友,虽然才刚认识了几天,但感觉有种莫名的默契感。每当在别的地方找不到思路,总能在Python找到解决

用python写一个windows下的定时关机脚本(推荐) 由于本人经常使用笔记本共享WiFi,但是又不想笔记本开机一夜(为了低碳环保嘛~_~!),所以每次都要用使用DOS命令关机,感觉好麻烦。正好最近在学习

标签: python提取xml的值

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

上一篇:Python正则简单实例分析(python3正则)

下一篇:使用Python生成XML的方法实例(python xml dom)

  • 税后经营净利润怎么求
  • 销售货物的运费计入成本吗
  • 非税收入票据能否税前扣除
  • 自产产品用于业务招待费
  • 外地预缴税款预缴多了怎么办
  • 公司汽车购置税怎么交
  • 小微企业季度申报增值税流程
  • 一次性支付一年房租怎么做账每月如何结转
  • 小规模税收优惠政策1%到什么时候
  • 临时售楼处及其装修费用如何列支
  • 专用发票上的码头堆存费等进项税可否抵扣?
  • 原材料的归集和整理
  • 个人所得税已申报税额合计是什么意思
  • 股权转让交的税如何做账
  • 成本暂估跨年度要怎么处理?
  • 存货跌价准备转回的条件有哪些
  • 未入账成本
  • 用现金支付销售产品的运费
  • 生产前和生产后经常长喘气怎么回事
  • 企业实际发生的与取得收入有关的、合理的支出,包括
  • 税号里面字母是大写吗
  • 关于税控清卡清算的报告
  • 开票超过离线时长怎么解决
  • 收到注册资金要交税吗
  • 企业筹建期的工会金费怎么入账
  • 公司名下没车能报油费吗
  • 跨区经营的税务政策
  • 消费税怎样做分录
  • 房地产行业需要做环评吗
  • 普通发票用记账吗
  • 网件R6400路由器怎么样?R6400拆解与内部结构评测
  • tp-link无线路由器怎么样
  • thinkphp5控制器
  • 文件被占用无法删除
  • win11怎么录屏游戏
  • win10记事本在哪找
  • Window7+CentOS 6.5双系统安装图文方法
  • php stream_get_meta_data返回值
  • 在php中,字符串有哪些表示形式
  • 取得抵债资产的方式
  • 税收筹划的风险性
  • 股东退股怎么分钱
  • 纳库鲁的念能力
  • 购入专利权属于
  • php 抓取别的网站的内容
  • phpcms教程
  • 生产企业出口退税政策
  • g郭敬明
  • 企业自建办公楼需要开发资质吗
  • 虚开普票的立案标准
  • 补贴,津贴是否合理
  • mysql 中文排序是什么规则
  • 两处取得工资薪金如何申报
  • 借应付职工薪酬贷财政拨款收入
  • 将固定资产转为投资性房地产账务处理
  • 不动产出租要交什么税
  • 建筑施工企业会计第三版单旭课后题答案
  • 预收账款冲销账户怎么做
  • 支付广告费属于进项还是销项
  • 收付转三种凭证的限制类型
  • 专票和普票的区别税点差多少
  • 屏幕右下角显示A2
  • xp系统怎么取消自动关机
  • 让你的时间更有价值
  • bios没有usb启动项解决方法联想
  • 在windowsxp的应用程序中,经常有一些菜单选项呈暗灰色
  • window10邮件
  • win7系统如何查看隐藏文件夹
  • Extjs中使用extend(js继承) 的代码
  • jQuery实现别踩白块儿网页版小游戏
  • android2d游戏开发
  • 置顶聊天的人怎么不见了
  • jquery dom对象
  • jquery上滑下滑
  • unity uGUI按钮点击换图
  • jqueryon事件
  • recyclerview stableid
  • 电子税务局季度利润表本月数
  • 税控盘开的电子票怎么发送给人
  • 2020年职工探亲路费报销最新规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设