Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python模块知识7:XML

Python模块知识7:XML

作者头像
企鹅号小编
发布于 2018-01-11 09:23:22
发布于 2018-01-11 09:23:22
6960
举报
文章被收录于专栏:编程编程

XML是实现不同语言或程序之间进行数据交换的协议;

通常浏览器返回的字符串有三种格式:

1、HTML

2、Json

3、XML

其中,XML可以在页面上做展示,可以作为程序的配置文件(获取字符串类型的XML格式数据)

xml的特点:以开始和结尾,包含根节点、子节点;

每一个节点都是element对象,节点下可以嵌套节点,element对象下可以获得各个方法。比如:tag(节点名称)、attib(属性)、text(内容)、makeelement(创建一个新节点)、append(追加一个子节点)等

如下所示的xml文件:

案例1:找根节点:

fromxml.etreeimportElementTreeasET

tree=ET.parse('hh.xml')

root=tree.getroot()#获取xml的根节点

print('根节点',root)#但因根节点,类型均为element;

print('根节点的名称',root.tag)#获取根节点名字,

print('根节点的属性',root.attrib)#获取根节点名字,

效果:

案例2:找二级、三级等节点

fromxml.etreeimportElementTreeasET

tree=ET.parse('hh.xml')

root=tree.getroot()#获取xml的根节点

foriinroot:

print('二级节点名称',i.tag,'二级节点属性',i.attrib)

forgradechildini:

print('3级节点名称:',gradechild.tag,'3级节点内容:',gradechild.text)

效果:

解析XML的两种方式:

1、解释字符串,无ElementTree,自己打开文件拿到,或者发送request模块拿到返回值

将字符串解析为xml

fromxml.etreeimportElementTreeasET

# 打开文件,读取XML内容

str_xml =open('xo.xml','r').read()

# 将字符串解析成xml特殊对象,root代指xml文件的根节点

root = ET.XML(str_xml)

2、解析文件,会有用ElementTree,两个步骤拿到Element,将文件解析为xml;ElementTree可以写入东西

fromxml.etreeimportElementTreeasET

# 直接解析xml文件

tree = ET.parse("xo.xml")

# 获取xml文件的根节点

root = tree.getroot()

案例3:修改xml,用字符方式读取的;

#以字符串导入

fromxml.etreeimportElementTreeasET

str_xml=open('hh.xml','r').read()

root=ET.XML(str_xml)

print(root.tag)#拿到所以的根节点

#循环所有的year节点

foriinroot.iter('year'):

#将year内容自增1

new_year=int(i.text)+1

i.text=str(new_year)

#设置属性

i.set('name',"hx")

i.set('age','18')

#删除属性

# del i.attrib['name']

#操作完了,需要保存,要用到ElementTree

tree=ET.ElementTree(root)

tree.write('hhnew',encoding='utf-8')#如果用文件方式解析,则可以直接用此句

执行结果:新增一个文件hhnew,内容如下:已修改所有内容

案例4:在Element基础上新增一个节点,可以写上内容

#在element的基础上新增一个节点,并写入内容

fromxml.etreeimportElementTreeasET

tree=ET.parse('hh.xml')

root=tree.getroot()

ele=ET.Element("hh",{'k1':'b1'})#创建element对象

ele.text="写入新的内容"

root.append(ele)#append

tree.write('hh_new2',encoding='utf-8')#写入新的文件

执行结果:会新增如下一句话

案例5:创建一个XML

#创建一个新的xml

fromxml.etreeimportElementTreeasET

fromxml.domimportminidom

defprettify(ele):#将所有的节点转换成字符串,并添加缩进

rough_string=ET.tostring(ele,'utf-8')

str=minidom.parseString(rough_string)

returnstr.toprettyxml(indent="\t")#添加缩进

#创建根节点

root=ET.Element('famliy')

#创建节点的大儿子

son1=ET.Element('son',{'name':'儿子1'})

#创建节点的小儿子

son2=ET.Element('son',{'name':'儿子2'})

#在大儿子下创建两个孙子

grandson1=ET.Element('grandson',{'name':'儿子1孙子1'})

grandson1.text='孙子1的节点内容'

grandson2=ET.Element('grandson',{'name':'儿子1孙子2'})

grandson2.text='孙子2的节点内容'

#把孙节点更新到儿节点

son1.append(grandson1)

son1.append(grandson2)

#把儿节点更新到根节点

root.append(son1)

root.append(son2)

raw_str=prettify(root)#缩进

#用打开文件方式写入

f=open('hhnew3','w',encoding='utf-8')

f.write(raw_str)

f.close()

执行结果:

本文来自企鹅号 - 乐想屋媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 乐想屋媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
三十二、python操作XML文件
''' XML:模块 xml总结 1、解析 str 文件 tree,ElementTree,type root,Element,type 2、操作 Element: tag,text,find,iter,get,set... 3、重新写入 tree.write() str没有tree--->ElementTree(root) tree.write(xx,encoding='utf-8',xxx,xxx) 4、创建xml Eleme
py3study
2020/01/08
1K0
python处理xml
XML格式类型是节点嵌套节点,对于每一个节点均有以下功能,以便对当前节点进行操作:
菲宇
2019/06/11
1.6K0
Python学习--xml-Elemen
当你需要解析和处理 XML 的时候,Python 表现出了它 “batteries included” 的一面。 标准库 中大量可用的模块和工具足以应对 Python 或者是 XML 的新手。
py3study
2020/01/07
8840
Python全栈开发之常用模块
No.1 sys sys模块是与Python解释器交互的一个接口 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 No.2 os os模块是与操作系统交互的一个接口 os.getcwd() 获取当前工作目录,
py3study
2020/01/14
1K0
python xml模块
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。
py3study
2018/08/02
5910
Python - xml模块
标签>>: country 、标签属性>>: {'name': 'Panama'}
py3study
2020/01/10
7470
Python - xml模块
Python修改XML实例应用场景
继上一篇介绍了xml实际应用,包括对采集数据如何打包、入库、解析。本文继续结合实际需求详细介绍xml数据包如何修改。
用户8949263
2022/04/08
8840
python开发_xml.etree.ElementTree_XML文件操作_该模块在操作XML数据是存在安全隐患_慎用
xml.etree.ElementTree模块实现了一个简单而有效的用户解析和创建XML数据的API。
Hongten
2018/09/13
8590
python处理testlink
在软件活动中,我们需要对测试用例进行管理,如果只用excel,不用管理工具系统的管理,那么将出现以下一些问题: 案例文件分散,测试进度不透明; 需求变更导致的测试计划/测试用例变更,未能及时通知相关测试人员; 版本管理困难,很难追踪版本的变化; 缺陷管理与测试用例管理脱节,不便于缺陷密度的分析; 产品需求、测试计划、测试用例未能建立关联,不便于测试过程管理; 缺乏相关的测试分析报告数据,不便于暴露测试风险;
赵云龙龙
2019/09/03
2.2K0
python处理testlink
Python 标准库之 XML(下)
隔了两天了,不知道你们还记得上一篇文章的内容不,如果不记得的话请移步 -- Python 标准库之 XML(上)。
编程文青李狗蛋
2019/11/07
5170
Python 进阶(八):XML 基本操作
XML(Extensible Markup Language)中文译为可扩展标记语言,它是一种简单、灵活、易扩展的文本格式,它主要关注数据内容,常用来传送、存储数据。
Python小二
2020/08/18
6590
Python 进阶(八):XML 基本操作
[快学Python3]XML解析处理 - Element Tree
概述 本文就是python xml解析进行讲解,在python中解析xml有很多种方法,本文通过实例来讲解如何使用ElementTree来解析xml。对于其他的xml解析方法,请自行去查找资料。 请注意,本文不是ElementTree手册,不会将所有的特性进行演示,笔者从实际用到的一些关键特性进行实例演示,对于其他特性,大家可以参见官方文档学习和了解: https://docs.python.org/3/library/xml.etree.elementtree.html 什么是ElementTree El
苦叶子
2018/04/09
2.9K0
Python 常用内置模块详解
OS模块提供了多数操作系统的功能接口函数,当OS模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在Python编程时,经常和文件、目录打交道,所以离不了OS模块,OS模块也是在开发中最常用到的模块之一,本节内容将对OS模块提供的函数进行详细的解读,先来看一下OS模块的常用参数吧.
王 瑞
2022/12/28
1.3K0
关于带命名空间的中文XML的解析
本来感觉XML文件解析是一件很简单的事情,结果折腾了一两周没什么进展,直到昨天才陆陆续续找到了一些解决方案,现在把踩坑过程和解决过程一并叙说一遍。
python与大数据分析
2022/03/11
7870
9.0 Python 内置模块应用
Python 是一种高级、面向对象、通用的编程语言,由Guido van Rossum发明,于1991年首次发布。Python 的设计哲学强调代码的可读性和简洁性,同时也非常适合于大型项目的开发。Python 语言被广泛用于Web开发、科学计算、人工智能、自动化测试、游戏开发等各个领域,并且拥有丰富的第三方库和工具,使得Python成为广泛应用的语言之一。同时,由于其开放性和可移植性,Python在跨平台应用、开源软件开发和云计算等领域也被广泛使用。
王 瑞
2023/08/14
6020
常用模块补充,内置函数,异常处理
shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中
py3study
2020/01/19
1.6K0
常用模块补充,内置函数,异常处理
Python数据处理(一):处理 JSON、XML、CSV 三种格式数据
本系列将以《Python数据处理》这本书为基础,以书中每章一篇博客的形式带大家一起学习 Python 数据处理。书中有些地方讲的不太详细,我会查阅其他资料来补充,力争每篇博客都把知识点涵盖全且通俗易懂。
程序员鑫港
2021/12/30
4.2K0
python的lxml模块解析xml
IBM Research Report, San Jose, California RJ909 August 1971
kirin
2021/04/01
1.1K0
Python 标准库之 XML(上)
带分隔符的文件仅有两维的数据:行 & 列。如果我们想在程序之间交换数据结构,需要一种方法把层次结构,序列,集合和其它的数据结构编码成文本。
编程文青李狗蛋
2019/11/07
4880
Python 标准库之 XML(上)
【Python】解析 Xml 格式的文档
注意:xml.etree.ElementTree模块在应对恶意结构数据时显得并不安全。
杨丝儿
2022/02/25
2.1K0
相关推荐
三十二、python操作XML文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档