day22_5-xml模块
# 参考资料:
# python模块(转自Yuan先生) - 狂奔__蜗牛 - 博客园
# https://www.cnblogs.com/guojintao/articles/9070485.html # ------------------------------------------------------------
# ********************day22_5-xml模块 *******************
# ********************day22_5-xml模块 *******************
# =====>>>>>>内容概览
# =====>>>>>>内容概览
'''
# ------------------------------------------------------------
# # 1、xml模块 的解释
# # # xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,
# # # 不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融
# # # 行业的很多系统的接口还主要是xml。
# # # xml的格式如下,就是通过<>节点来区别数据结构的
# ------------------------------------------------------------ # ------------------------------------------------------------
# # 2、对xml文件读取标签
# # # getroot获取根节点
# ------------------------------------------------------------ # ------------------------------------------------------------
# # 3、对xml文件读取二级的标签、属性
# # # tag、attrib
# ------------------------------------------------------------ # ------------------------------------------------------------
# # 4、对xml文件读取二级的标签、属性、内容
# # # tag、attrib、test
# ------------------------------------------------------------ # ------------------------------------------------------------
# # 5、对xml文件只遍历year 节点
# # # node
# ------------------------------------------------------------ # ------------------------------------------------------------
# # 6、对xml文件进行修改
# # # n
# ------------------------------------------------------------ # ------------------------------------------------------------
# # 7、对xml文件进行删除
# # # findall可以找的范围比较广一点, find可以找的范围比较小一些
# # # 先findall,在find,否则会报错
# ------------------------------------------------------------ # ------------------------------------------------------------
# # 8、生成xml文档对象
# ------------------------------------------------------------ # ------------------------------------------------------------
# # 9、生成xml文档对象并且打印,生成格式
# ------------------------------------------------------------
------------------------------------------------分割线-------------------------------------------------
------------------------------------------------分割线-------------------------------------------------
------------------------------------------------分割线-------------------------------------------------
'''
# ------------------------------------------------------------
# # 1、xml模块 的解释
# # # xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,
# # # 不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融
# # # 行业的很多系统的接口还主要是xml。
# # # xml的格式如下,就是通过<>节点来区别数据结构的
# ------------------------------------------------------------
''' '''
# 下面实验中所用到的xml文件内容。
# 储存位置与执行文件同目录
# 名称:xml_lesson
<data>
<country name="Liechtenstein">
<rank updated="yes">2</rank>
<year updated="yes">2010</year>
<gdppc>141100</gdppc>
<neighbor direction="E" name="Austria" />
<neighbor direction="W" name="Switzerland" />
</country>
<country name="Singapore">
<rank updated="yes">5</rank>
<year updated="yes">2013</year>
<gdppc>59900</gdppc>
<neighbor direction="N" name="Malaysia" />
</country>
<country name="Panama">
<rank updated="yes">69</rank>
<year updated="yes">2013</year>
<gdppc>13600</gdppc>
<neighbor direction="W" name="Costa Rica" />
<neighbor direction="E" name="Colombia" />
</country>
</data> ''' '''
# ------------------------------------------------------------
# # 2、对xml文件读取标签
# # # getroot获取根节点
# ------------------------------------------------------------
'''
#
# import xml.etree.ElementTree as ET
# tree = ET.parse("xml_lesson")
# root = tree.getroot()
# print(root.tag)
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
# # data
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 2、对xml文件读取一级的标签、属性
# # # tag、attrib
# ------------------------------------------------------------
'''
#
# import xml.etree.ElementTree as ET
# tree = ET.parse("xml_lesson")
# root = tree.getroot()
# print(root.tag)
#
# for i in root:
# print("标签:",i.tag)
# print("属性:",i.attrib)
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
# # data
# # 标签: country
# # 属性: {'name': 'Liechtenstein'}
# # 标签: country
# # 属性: {'name': 'Singapore'}
# # 标签: country
# # 属性: {'name': 'Panama'}
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 3、对xml文件读取二级的标签、属性
# # # tag、attrib
# ------------------------------------------------------------
'''
#
# import xml.etree.ElementTree as ET
# tree = ET.parse("xml_lesson")
# root = tree.getroot()
# print(root.tag)
#
# for i in root:
# print( ("一级标签: "+i.tag).center(60,"-"))
# print( ("一级属性: "+str(i.attrib)).center(60,"-"))
# for j in i:
# print("二级标签:",j.tag)
# print("二级属性:",j.attrib)
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
# # data
# # -----------------------一级标签: country-----------------------
# # --------------一级属性: {'name': 'Liechtenstein'}--------------
# # 二级标签: rank
# # 二级属性: {'updated': 'yes'}
# # 二级标签: year
# # 二级属性: {'updated': 'yes'}
# # 二级标签: gdppc
# # 二级属性: {}
# # 二级标签: neighbor
# # 二级属性: {'direction': 'E', 'name': 'Austria'}
# # 二级标签: neighbor
# # 二级属性: {'direction': 'W', 'name': 'Switzerland'}
# # -----------------------一级标签: country-----------------------
# # ----------------一级属性: {'name': 'Singapore'}----------------
# # 二级标签: rank
# # 二级属性: {'updated': 'yes'}
# # 二级标签: year
# # 二级属性: {'updated': 'yes'}
# # 二级标签: gdppc
# # 二级属性: {}
# # 二级标签: neighbor
# # 二级属性: {'direction': 'N', 'name': 'Malaysia'}
# # -----------------------一级标签: country-----------------------
# # -----------------一级属性: {'name': 'Panama'}------------------
# # 二级标签: rank
# # 二级属性: {'updated': 'yes'}
# # 二级标签: year
# # 二级属性: {'updated': 'yes'}
# # 二级标签: gdppc
# # 二级属性: {}
# # 二级标签: neighbor
# # 二级属性: {'direction': 'W', 'name': 'Costa Rica'}
# # 二级标签: neighbor
# # 二级属性: {'direction': 'E', 'name': 'Colombia'}
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 4、对xml文件读取二级的标签、属性、内容
# # # tag、attrib、test
# ------------------------------------------------------------
'''
#
# import xml.etree.ElementTree as ET
# tree = ET.parse("xml_lesson")
# root = tree.getroot()
# print(root.tag)
#
# for i in root:
# print( ("一级标签: "+i.tag).center(60,"-"))
# print( ("一级属性: "+str(i.attrib)).center(60,"-"))
# for j in i:
# print("二级标签:",j.tag)
# print("二级属性:",j.attrib)
# print("二级内容:",j.text)
# print("\n")
# #
# # D:\Anaconda3\python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
# # data
# # -----------------------一级标签: country-----------------------
# # --------------一级属性: {'name': 'Liechtenstein'}--------------
# # 二级标签: rank
# # 二级属性: {'updated': 'yes'}
# # 二级内容: 2
# # 二级标签: year
# # 二级属性: {'updated': 'yes'}
# # 二级内容: 2010
# # 二级标签: gdppc
# # 二级属性: {}
# # 二级内容: 141100
# # 二级标签: neighbor
# # 二级属性: {'direction': 'E', 'name': 'Austria'}
# # 二级内容: None
# # 二级标签: neighbor
# # 二级属性: {'direction': 'W', 'name': 'Switzerland'}
# # 二级内容: None
# #
# #
# # -----------------------一级标签: country-----------------------
# # ----------------一级属性: {'name': 'Singapore'}----------------
# # 二级标签: rank
# # 二级属性: {'updated': 'yes'}
# # 二级内容: 5
# # 二级标签: year
# # 二级属性: {'updated': 'yes'}
# # 二级内容: 2013
# # 二级标签: gdppc
# # 二级属性: {}
# # 二级内容: 59900
# # 二级标签: neighbor
# # 二级属性: {'direction': 'N', 'name': 'Malaysia'}
# # 二级内容: None
# #
# #
# # -----------------------一级标签: country-----------------------
# # -----------------一级属性: {'name': 'Panama'}------------------
# # 二级标签: rank
# # 二级属性: {'updated': 'yes'}
# # 二级内容: 69
# # 二级标签: year
# # 二级属性: {'updated': 'yes'}
# # 二级内容: 2013
# # 二级标签: gdppc
# # 二级属性: {}
# # 二级内容: 13600
# # 二级标签: neighbor
# # 二级属性: {'direction': 'W', 'name': 'Costa Rica'}
# # 二级内容: None
# # 二级标签: neighbor
# # 二级属性: {'direction': 'E', 'name': 'Colombia'}
# # 二级内容: None
# #
# #
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 5、对xml文件只遍历year 节点
# # # node
# ------------------------------------------------------------
'''
#
# import xml.etree.ElementTree as ET
# tree = ET.parse("xml_lesson")
# root = tree.getroot()
#
# for node in root.iter("year"):
# print("标签:", node.tag, "内容: ",node.text)
# #
# # D:\Anaconda3\python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
# # 标签: year 内容: 2010
# # 标签: year 内容: 2013
# # 标签: year 内容: 2013
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 6、对xml文件进行修改
# # # n
# ------------------------------------------------------------
'''
#
# import xml.etree.ElementTree as ET
# tree = ET.parse("xml_lesson")
# root = tree.getroot()
#
# for node in root.iter("year"):
# new_year = int(node.text) + 1
# new_year = str(new_year) + "--->+1"
# node.text = new_year
# node.set("updated","yes")
# # 写入文件,如果文件名与原文件同名, 原文件将被覆盖
# tree.write("xml_lesson-new")
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 7、对xml文件进行删除
# # # findall可以找的范围比较广一点, find可以找的范围比较小一些
# # # 先findall,在find,否则会报错
# ------------------------------------------------------------
'''
#
# import xml.etree.ElementTree as ET
# tree = ET.parse("xml_lesson")
# root = tree.getroot()
#
# for country in root.findall("country"):
# rank = int(country.find("rank").text)
# if rank > 50:
# root.remove(country)
# # 写入文件,如果文件名与原文件同名, 原文件将被覆盖
# tree.write("xml_lesson-remove") # D:\Anaconda3\python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
#
# Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 8、生成xml文档对象
# ------------------------------------------------------------
'''
# import xml.etree.ElementTree as ET
# new_xml = ET.Element("namelist")
# '''
# 生成根节点,如下:
# <namelist>
#
# </namelist>
# '''
#
# name = ET.SubElement(new_xml,"name--1",attrib={"enrolled": "yes"})
# age = ET.SubElement(name, "age---1",attrib={"checked": "no"})
# sex = ET.SubElement(name, "sex---1")
# sex.text = "male"
#
# name2 = ET.SubElement(new_xml,"name--2",attrib={"enrolled": "no"})
# age2 = ET.SubElement(name2, "age---2",attrib={"checked": "yes"})
# # 即使是写入整数,也应该写为字符串模式
# age2.text = '22'
# sex = ET.SubElement(name, "sex---1")
#
# # 生成文档对象
# et = ET.ElementTree(new_xml)
# et.write("test.xml", encoding="utf-8", xml_declaration=True)
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 9、生成xml文档对象并且打印,生成格式
# ------------------------------------------------------------
'''
#
# import xml.etree.ElementTree as ET
# new_xml = ET.Element("namelist")
# '''
# 生成根节点,如下:
# <namelist>
#
# </namelist>
# '''
#
# name = ET.SubElement(new_xml,"name--1",attrib={"enrolled": "yes"})
# age = ET.SubElement(name, "age---1",attrib={"checked": "no"})
# sex = ET.SubElement(name, "sex---1")
# sex.text = "male"
#
# name2 = ET.SubElement(new_xml,"name--2",attrib={"enrolled": "no"})
# age2 = ET.SubElement(name2, "age---2",attrib={"checked": "yes"})
# # 即使是写入整数,也应该写为字符串模式
# age2.text = '22'
# sex = ET.SubElement(name, "sex---1")
#
# # 生成文档对象
# et = ET.ElementTree(new_xml)
# et.write("test.xml", encoding="utf-8", xml_declaration=True)
# # 打印生成的格式
# ET.dump(new_xml)
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
# # <namelist><name--1 enrolled="yes"><age---1 checked="no" /><sex---1>male</sex---1><sex---1 /></name--1><name--2 enrolled="no"><age---2 checked="yes">22</age---2></name--2></namelist>
# #
# # Process finished with exit code 0
day22_5-xml模块的更多相关文章
- oop、configparser、xml模块
本节大纲:一:在python中,有两种编程思想.1:函数式编程.2:oop.无论是函数式编程还是oop都是相辅相成.并不是说oop比函数式编程就好.各有各的优缺点.在其他语言中java等只能以面向对象 ...
- python解析xml模块封装代码
在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ...
- s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...
- python全栈开发-hashlib模块(数据加密)、suprocess模块、xml模块
一.hashlib模块 1.什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 ...
- 【python标准库模块五】Xml模块学习
Xml模块 xml本身是一种格式规范,是一种包含了数据以及数据说明的文本格式规范.在json没有兴起之前各行各业进行数据交换的时候用的就是这个.目前在金融行业也在广泛在运用. 举个简单的例子,xml是 ...
- Python xml 模块
Python xml 模块 TOC 什么是xml? xml和json的区别 xml现今的应用 xml的解析方式 xml.etree.ElementTree SAX(xml.parsers.expat) ...
- python之xml模块
# XML 模块的操作参考链接 # http://www.cnblogs.com/yuanchenqi/articles/5732581.html
- hashlib,hmac,subprocess,configparser,xlrd,xlwt,xml模块基本功能
hashlib模块:加密 import hashlib# 基本使用cipher = hashlib.md5('需要加密的数据的二进制形式'.encode('utf-8'))print(cipher.h ...
- python configparse模块&xml模块
configparse模块 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. [DEFAULT] serveraliveinterval = ...
- xml模块、项目开发过程
一.XML模块 xml指的是可扩展标记语言,是一种定义电子文档结构和描述的语言,可以用来标记数据.定义数据类型. 什么时候用xml? 当需要自定义文档结构时,使用xml.在java中经常会使用xml来 ...
随机推荐
- Qt 【无法打开 xxxx头文件】
经过多次磕碰,终于发现了通用的办法. 测试环境Qt5.5.1 mvcs 比如需要用到QtWin 直接去包含然后运行,but fail, 我去查找他的父类 QtWinExtras Qt自带的自动补全, ...
- Typora使用入门
使用sublime编写markdown语法不太方便,使用专门的markdown编辑软件会更方便一些! 1.typora常用快捷键 ctrl + / 切换编辑语法模式/预览模式 ctrl + 1 ...
- IDEA使用的JDK版本1.9换成1.8后,在IDEA中需要改的配置
今天上午上课spring5使用注解方式的时候,发现jdk9不兼容,果断换jdk8 步骤如下 一.查看Project中的jdk 1.检查Project SDK:中jdk 版本是否为1.8版本 2.检查P ...
- 依赖背包优化——ural1018,金明的预算方案
经典题了,网上博客一大堆O(nCC)的做法,其实是可以将复杂度降到O(nC)的 参考依赖背包优化(泛化物品的并) 根据背包九讲,求两个泛化物品的和复杂度是O(CC)的,所以依赖背包暴力求解的复杂度是O ...
- <转载>深入 理解char * ,char ** ,char a[ ] ,char *a[] 的区别
C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符数组和字符指针这两个 ...
- windows中创建流量转发规则
#创建流量转发,其中listenaddress为内网ip(也就是ipconfig中所显示的IP),listenport为监听的本机对外端口,后两个分别是需转发的目标主机IP和端口. netsh int ...
- 案例 查询QC(query_cache)
案例: 数据库版本 5.7.23 16c 64g 按月分区表,做压力测试 开启QC之前: select * from a where aa=xxx; QPS:每秒处理查询的数量 3000+ 开启之后 ...
- 安装mysql时,服务无法启动的问题
1.下载mysql镜像文件:mysql-installer-community-8.0.17.0.msi 2.点击镜像进行安装,一直next即可 3.cmd以管理员身份,进入到安装的mysql安装目录 ...
- PyQt5 安装及简单实例 -- 标签设置
- 1 - PyQt5安装,鉴于pip工具,安装其实很简单, 如下:(最好将pip索引配置成国内镜像,速度比默认的快得多) pip3 isntall PyQt5 - 2 - 利用Pycha ...
- 深度探索C++对象模型之第一章:关于对象之C++对象模型
一.C和C++对比: C语言的Point3d: 数据成员定义在结构体之内,存在一组各个以功能为导向的函数中,共同处理外部的数据. typedef struct point3d { float x; f ...