简单介绍使用Python解析并修改XML文档的方法


Posted in Python onOctober 15, 2015

问题
你想读取一个XML文档,对它最一些修改,然后将结果写回XML文档。


解决方案

使用 xml.etree.ElementTree 模块可以很容易的处理这些任务。 第一步是以通常的方式来解析这个文档。例如,假设你有一个名为 pred.xml 的文档,类似下面这样:

下面是一个利用 ElementTree 来读取这个文档并对它做一些修改的例子:

>>> from xml.etree.ElementTree import parse, Element
>>> doc = parse('pred.xml')
>>> root = doc.getroot()
>>> root
<Element 'stop' at 0x100770cb0>

>>> # Remove a few elements
>>> root.remove(root.find('sri'))
>>> root.remove(root.find('cr'))
>>> # Insert a new element after <nm>...</nm>
>>> root.getchildren().index(root.find('nm'))
1
>>> e = Element('spam')
>>> e.text = 'This is a test'
>>> root.insert(2, e)

>>> # Write back to a file
>>> doc.write('newpred.xml', xml_declaration=True)
>>>

处理结果是一个像下面这样新的XML文件:

讨论
修改一个XML文档结构是很容易的,但是你必须牢记的是所有的修改都是针对父节点元素, 将它作为一个列表来处理。例如,如果你删除某个元素,通过调用父节点的 remove() 方法从它的直接父节点中删除。 如果你插入或增加新的元素,你同样使用父节点元素的 insert() 和 append() 方法。 还能对元素使用索引和切片操作,比如 element[i] 或 element[i:j]

如果你需要创建新的元素,可以使用本节方案中演示的 Element 类。我们在6.5小节已经详细讨论过了。

Python 相关文章推荐
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
Python3字符串encode与decode的讲解
Apr 02 Python
利用python将图片版PDF转文字版PDF
May 03 Python
python实现图片中文字分割效果
Jul 22 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
详解pycharm2020.1.1专业版安装指南(推荐)
Aug 07 Python
Python基于locals返回作用域字典
Oct 17 Python
Python中将字典转换为XML以及相关的命名空间解析
Oct 15 #Python
详细解读Python中解析XML数据的方法
Oct 15 #Python
深入解析Python编程中JSON模块的使用
Oct 15 #Python
使用Python解析JSON数据的基本方法
Oct 15 #Python
深入讲解Python编程中的字符串
Oct 14 #Python
Python编程中字符串和列表的基本知识讲解
Oct 14 #Python
Python循环语句之break与continue的用法
Oct 14 #Python
You might like
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
php实现文件下载更能介绍
2012/11/23 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
Easyui在treegrid添加控件的实现方法
2017/06/23 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
node.js博客项目开发手记
2018/03/16 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
python threading模块操作多线程介绍
2015/04/08 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
详解Python if-elif-else知识点
2018/06/11 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
各营销点岗位职责范本
2014/03/05 职场文书
洗发水广告词
2014/03/13 职场文书
终止劳动合同通知书
2015/04/16 职场文书
调解协议书范本
2016/03/21 职场文书
新手入门Mysql--sql执行过程
2021/06/20 MySQL