当前位置: 首页 > news >正文

一文带你快速了解,python是如何解析XML文件

XML简介:

XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用。它是web发展到一定阶段的必然产物,既具有SGML的核心特征,又有着HTML的简单特性,还具有明确和结构良好等许多新的特性。

python学习关注我们企鹅qun: 8393 837 65 各类入门学习资料免费分享哦!

解析XML文件的方法:

python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合;二是xml.etree.ElementTree模块(简称 ET),它提供了轻量级的Python式的API,相对于DOM来说ET 快了很多,而且有很多令人愉悦的API可以使用,相对于SAX来说ET的ET.iterparse也提供了 “在空中” 的处理方式,没有必要加载整个文档到内存,ET的性能的平均值和SAX差不多,但是API的效率更高一点而且使用起来很方便。

  1. xml.dom.minidom

文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。一个 DOM 的解析器在解析一个XML文档时,一次性读取整个文档,把文档中所有元素保存在内存中的一个树结构里,之后你可以利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入xml文件。

1.1 用xml.dom.minidom读取XML文件
一文带你快速了解,python是如何解析XML文件
一文带你快速了解,python是如何解析XML文件

1.2. 获得子标签
一文带你快速了解,python是如何解析XML文件

一文带你快速了解,python是如何解析XML文件
1.3. 获取标签属性值
一文带你快速了解,python是如何解析XML文件
一文带你快速了解,python是如何解析XML文件

1.4. 区分相同标签名的标签
一文带你快速了解,python是如何解析XML文件
一文带你快速了解,python是如何解析XML文件

  1. xml.etree.ElementTree

ElementTree生来就是为了处理XML,它在Python标准库中有两种实现:一种是纯Python实现的,如xml.etree.ElementTree,另一种是速度快一点的xml.etree.cElementTree。注意:尽量使用C语言实现的,因为它速度更快,而且消耗的内存更少。

2.1遍历XmL文件
一文带你快速了解,python是如何解析XML文件

一文带你快速了解,python是如何解析XML文件
2.2查找root下的指定标签
一文带你快速了解,python是如何解析XML文件

一文带你快速了解,python是如何解析XML文件
2.3使用下标访问
一文带你快速了解,python是如何解析XML文件
一文带你快速了解,python是如何解析XML文件

2.4根据标签名查找root下的所有标签
一文带你快速了解,python是如何解析XML文件

一文带你快速了解,python是如何解析XML文件
2.5修改xml文件,将passwd修改为999999

一文带你快速了解,python是如何解析XML文件
一文带你快速了解,python是如何解析XML文件

转载于:https://blog.51cto.com/14186420/2346964

相关文章:

  • 验证码图片识别相关博客收集
  • 系统可用性几个9
  • 15分钟在笔记本上搭建 Kubernetes + Istio开发环境
  • Docker镜像细节
  • 河北优化口岸营商环境 促进跨境贸易便利化
  • 不仅有Ubuntu,这家公司的Ubuntu Core预计使用翻倍
  • 沈阳机场海关设置春运申报窗口 确保年货鲜活可靠
  • GitNote 基于 Git 的跨平台笔记软件正式发布
  • xkb 第6章 server 中的键事件处理
  • PAT A1092
  • 用Ajax爬取今日头条图片集
  • OSS数据处理最佳实践--文档预览
  • (转)shell调试方法
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 免费小说阅读小程序
  • C++类的相互关联
  • Idea+maven+scala构建包并在spark on yarn 运行
  • javascript面向对象之创建对象
  • Linux gpio口使用方法
  • PHP 7 修改了什么呢 -- 2
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • react 代码优化(一) ——事件处理
  • 初探 Vue 生命周期和钩子函数
  • 多线程 start 和 run 方法到底有什么区别?
  • - 概述 - 《设计模式(极简c++版)》
  • 记录一下第一次使用npm
  • 讲清楚之javascript作用域
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 大数据全解:定义、价值及挑战
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​低代码平台的核心价值与优势
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #QT(一种朴素的计算器实现方法)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (1)Nginx简介和安装教程
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net core 依赖注入的基本用发
  • .net 无限分类
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET建议使用的大小写命名原则
  • /etc/motd and /etc/issue
  • @synthesize和@dynamic分别有什么作用?
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [C# 网络编程系列]专题六:UDP编程
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh
  • [Eclipse] 详细设置护眼背景色和字体颜色并导出