Python模块——xml
xml模块
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,
不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。
xml的格式如下,就是通过<>节点来区别数据结构的:
<?xml version="1.0"?> <data><country name="Liechtenstein"><rank updated="yes">2</rank><year>2008</year><gdppc>141100</gdppc><neighbor name="Austria" direction="E"/><neighbor name="Switzerland" direction="W"/></country><country name="Singapore"><rank updated="yes">5</rank><year>2011</year><gdppc>59900</gdppc><neighbor name="Malaysia" direction="N"/></country><country name="Panama"><rank updated="yes">69</rank><year>2011</year><gdppc>13600</gdppc><neighbor name="Costa Rica" direction="W"/><neighbor name="Colombia" direction="E"/></country> </data>
xml协议在各个语言里的都 是支持的,在python中可以用以下模块操作xml
遍历
import xml.etree.ElementTree as ETtree = ET.parse("xml test") # 打开xml文件 root = tree.getroot() # 得到根节点 # print(dir(root)) print(root.tag) # 遍历xml文档 for child in root:print('----------',child.tag, child.attrib) # 打印country节点for i in child:print(i.tag,i.text)
修改和删除xml文档内容
import xml.etree.ElementTree as ETtree = ET.parse("xml_test") root = tree.getroot() #f.seek(0)# 修改 for node in root.iter('year'):new_year = int(node.text) + 5node.text = str(new_year) # 修改内容node.set("attr_test","false") tree.write('output.xml') # 写入文件# #删除node for country in root.findall('country'):rank = int(country.find('rank').text)if rank > 50:root.remove(country)tree.write('output.xml')
新建xml
import xml.etree.ElementTree as ETroot = ET.Element("namelist") # 创建root name = ET.SubElement(root,"name",attrib={"enrolled":"yes"}) # 创建child--name age = ET.SubElement(name,"age",attrib={"checked":"no"}) # 创建name child--age,sex,name sex = ET.SubElement(name,"sex") n = ET.SubElement(name,"name") n.text = "Alex Li" sex.text = 'male'name2 = ET.SubElement(root,"name",attrib={"enrolled":"no"}) age = ET.SubElement(name2,"age") age.text = '19'et = ET.ElementTree(root) # 生成文档对象 et.write("build_out.xml", encoding="utf-8",xml_declaration=True)
由于原生保存的XML时默认无缩进,如果想要设置缩进的话, 需要修改保存方式
import xml.etree.ElementTree as ET from xml.dom import minidomdef subElement(root, tag, text):ele = ET.SubElement(root, tag)ele.text = textdef saveXML(root, filename, indent="\t", newl="\n", encoding="utf-8"):rawText = ET.tostring(root)dom = minidom.parseString(rawText)with open(filename, 'w') as f:dom.writexml(f, "", indent, newl, encoding)root = ET.Element("namelist")to = root.makeelement("to", {}) to.text = "peter" root.append(to)name = ET.SubElement(root,"name",attrib={"enrolled":"yes"}) # 创建child--name age = ET.SubElement(name,"age",attrib={"checked":"no"}) # 创建name child--age,sex,name sex = ET.SubElement(name,"sex") n = ET.SubElement(name,"name") n.text = "Alex Li" sex.text = 'male'name2 = ET.SubElement(root,"name",attrib={"enrolled":"no"}) age = ET.SubElement(name2,"age") age.text = '19'# et = ET.ElementTree(root) # 生成文档对象# 保存xml文件 saveXML(root, "note.xml")
转载于:https://www.cnblogs.com/xiao-apple36/p/8849484.html
Python模块——xml相关推荐
- python模块--json \ pickle \ shelve \ XML模块
一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...
- python解析xml生成代码_python解析xml模块封装代码
有如下的xml文件: 复制代码 代码如下: 1 2 下面介绍python解析xml文件的几种方法,使用python模块实现. 方式1,python模块实现自动遍历所有节点: 复制代码 代码如下: #! ...
- python解析xml文件最好选用的模块_用Python解析XML文件
本文翻译自:https://developer.yahoo.com/python/python-xml.html 使用Python解析XML文件 许多YDN APIs提供了JSON格式的数据输出,JS ...
- python解析xml选用什么模块_python 解析xml需要什么模块
Python的标准库中,提供了6种可以用于处理XML的包. (1)xml.dom xml.dom实现的是W3C制定的DOM API.如果你习惯于使用DOM API或者有人要求这这样做,可以使用这个包. ...
- python解析xml文件最好选用的模块_python高级编程 之解析XML文件模块
XML是啥?可扩展标记语言(extensible makeup language),以.xml为后缀的文件. XML文件最大的作用在于存储和传输数据.很多Python的项目就是把产品相关配置参数存储 ...
- python:XML处理模块
python:XML处理模块 简介 XML 漏洞 defusedxml 包 简介 用于处理XML的Python接口分组在 xml 包中. 警告 XML 模块对于错误或恶意构造的数据是不安全的. 如果你 ...
- python中xml模块_python学习第十五天-2(XML模块)
也是一种文本转换形式. import xxxxxxxxxxxxxxxxxxx as xx,可以用xx代替xxxxxxxxxxxxxxxxxxx模块 xml文件的新增,修改,删除,查询. 新增: i ...
- Python模块包中__init__.py文件的作用
2019独角兽企业重金招聘Python工程师标准>>> 在eclipse中用pydev开发Python脚本时,我遇到了一个这样的现象,当我新建一个pydev package时,总会自 ...
- 用python将xml文件转换为txt文件_python代码xml转txt实例
为了训练深度学习模型,经常要整理大量的标注数据,需统一不同格式的标注数据,一般情况下习惯读取TXT格式的数据.但实际中经常遇到XML格式的标注数据,在此举例:1.读取XML标注数据:2.写入TXT文件 ...
- python第三方库排行-Python模块汇总(常用第三方库)
模块 定义 计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里.在python里,一个.py文件就是一个模块 优点: 提高代码的可维护性 ...
最新文章
- 在开发流程中嵌入安全测试
- [项目实施失败讨论Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)...
- 武汉python培训哪一家好一些-一家靠谱的武汉Python培训机构很重要
- python培训深圳-深圳python 培训班多少钱?[Python培训]
- JZOJ 5473. 【NOIP2017提高组正式赛】小凯的疑惑
- Java入门需掌握的30个基本概念[转]
- Java中文编码转换与字节长度判断
- Xcode pch文件配置及object c 单例创建
- mysql 5.0创建函数_MySQL5.0中的Function和Procedure
- 6. 卷2(进程间通信)---System V 消息队列
- python smtplib发送邮件可直接运行代码
- 代码:Java实现大数据经典案例WordCount
- 英雄联盟查服务器角色信息,LOL英雄联盟角色信息查询
- Linux系统下安装Chrome浏览器
- Your cache folder contains root-owned files, due to a bug in npm ERR! previous versions of npm which
- 使用Qt实现一个必应壁纸客户端
- CVE-2017-8570微软office漏洞复现与研究
- 物联网卡无法激活使用的原因
- 【拓扑排序+dp】Hzy's Rabbit Candy
- 防火墙一个系统加固的例子