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来 ...
随机推荐
- 笔记37 Spring Web Flow——流程的组件
在Spring Web Flow中,流程是由三个主要元素定义的:状态.转移和 流程数据. 一.状态 Spring Web Flow定义了五种不同类型的状态.通过选择Spring Web Flow的状态 ...
- scip 练习2.20
(define (same-parity x . z) (define (q? y) (= (remainder y ) )) (define (o? y) (= (remainder y ) )) ...
- __stdcall,__cdecl,__fastcall,_stdcall,_cdecl,_fastcall 区别简介[转]
今天写线程函数时,发现msdn中对ThreadProc的定义有要求: DWORD WINAPI ThreadProc(LPVOID lpParameter); 不解为什么要用WINAPI宏定义,查 ...
- P1487 失落的成绩单
P1487 失落的成绩单a[i]=a[i-2]-2.0*a[i-1]+2.0*d;a[2]越大,a[3]越小a[3]越大,a[4]越小所以a[2]越大,a[4]越大,a[3]越小就有了单调性,分奇偶进 ...
- QueryList getData()方法中多次调用来实现递归多级采集。
<?php require 'QueryList/vendor/autoload.php'; use QL\QueryList; //获取每个li里面的h3标签内容,和class为item的元素 ...
- NX二次开发-UFUN单对象选择对话框UF_UI_select_with_single_dialog
#include <uf.h> #include <uf_ui.h> ], void* user_data, UF_UI_selection_p_t select) { if ...
- ZOJ3953-Intervals-贪心
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门 原题目描述在最下面. 给你n个区间, ...
- CSS3:CSS3 边框
ylbtech-CSS3:CSS3 边框 1.返回顶部 1. CSS3 边框 CSS3 边框 用 CSS3,你可以创建圆角边框,添加阴影框,并作为边界的形象而不使用设计程序,如 Photoshop. ...
- Git 学习(二)Git 基础
Git 基础 Git 在保存和对待各种信息的时候与其它版本控制系统如 SVN 等等有很大差异,尽管操作起来的命令形式非常相近,理解这些差异将有助于防止你使用中的困惑. Git 记录的是什么? 如果有使 ...
- C++之常量
常量 **作用**:用于记录程序中不可更改的数据 C++定义常量两种方式 1. **\#define** 宏常量: #define 常量名 常量值 * ==通常在文件上方定义==,表示一个常量 2. ...