时间:2021-05-22
前言
最近因为工作的需要,在使用 Python 来发送 SOAP 请求以测试 Web Service 的性能,由于 SOAP 是基于 XML 的,故免不了需要使用 python 来处理 XML 数据。在对比了几种方案后,最后选定使用 xml.etree.ElementTree 模块来实现。
这篇文章记录了使用 xml.etree.ElementTree 模块常用的几个操作,也算是总结一下,免得以后忘记了。分享出来也方法需要的朋友们参考学习,下面话不多说了,来一起看看详细的介绍吧。
概述
对比其他 Python 处理 XML 的方案,xml.etree.ElementTree 模块(下文我们以 ET 来表示)相对来说比较简单,接口也较友好。
官方文档 里面对 ET 模块进行了较为详细的描述,总的来说,ET 模块可以归纳为三个部分:ElementTree类,Element类以及一些操作 XML 的函数。
XML 可以看成是一种树状结构,ET 使用ElementTree类来表示整个 XML 文档,使用Element类来表示 XML 的一个结点。对整 XML 文档的操作一般是对ElementTree对象进行,而对 XML 结点的操作一般是对Element对象进行。
解析 XML 文件
ET 模块支持从一个 XML 文件构造ElementTree对象,例如我们的 XML 文件example.xml内容如下(下文会继续使用这个 XML 文档):
<?xml version="1.0" encoding="utf-8"?><data> <country name="Liechtenstein"> <rank>1</rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor name="Austria" direction="E"/> <neighbor name="Switzerland" direction="W"/> </country> <country name="Singapore"> <rank>4</rank> <year>2011</year> <gdppc>59900</gdppc> <neighbor name="Malaysia" direction="N"/> </country></data>可以使用 ET 模块的parse()函数来从指定的 XML 文件构造一个ElementTree对象:
import xml.etree.ElementTree as ET# 获取 XML 文档对象 ElementTreetree = ET.parse('example.xml')# 获取 XML 文档对象的根结点 Elementroot = tree.getroot()# 打印根结点的名称print root.tag从 XML 文件构造好ElementTree对象后,还可以获取其结点,或者再继续对结点进行进一步的操作。
解析 XML 字符串
ET 模块的fromstring()函数提供从 XML 字符串构造一个Element对象的功能。
xml_str = ET.tostring(root)print xml_strroot = ET.fromstring(xml_str)print root.tag接着上面的代码,我们使用 ET 模块的tostring()函数来将上面我们构造的root对象转化为字符串,然后使用fromstring()函数重新构造一个Element对象,并赋值给root变量,这时root代表整个 XML 文档的根结点。
构造 XML
如果我们需要构造 XML 文档,可以使用 ET 模块的 Element类以及SubElement()函数。
可以使用Element类来生成一个Element对象作为根结点,然后使用ET.SubElement()函数生成子结点。
a = ET.Element('a')b = ET.SubElement(a, 'b')b.text = 'leehao.me'c = ET.SubElement(a, 'c')c.attrib['greeting'] = 'hello'd = ET.SubElement(a, 'd')d.text = '/questions/1912434/how-do-i-parse-xml-in-python声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用了Python的xml.etree.ElementTree库xml.etree.ElementTree库简介xml.etree.ElementTree模块实
Python处理xml文档的方法有很多,除了经典的sax和dom之外,还有一个ElementTree。首先import之:fromxml.etreeimport
问题你想读取一个XML文档,对它最一些修改,然后将结果写回XML文档。解决方案使用xml.etree.ElementTree模块可以很容易的处理这些任务。第一步
有如下的xml文件:复制代码代码如下:12下面介绍python解析xml文件的几种方法,使用python模块实现。方式1,python模块实现自动遍历所有节点:
问题你想使用一个Python字典存储数据,并将它转换成XML格式。解决方案尽管xml.etree.ElementTree库通常用来做解析工作,其实它也可以创建X