# 参考资料:
# 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模块的更多相关文章

  1. oop、configparser、xml模块

    本节大纲:一:在python中,有两种编程思想.1:函数式编程.2:oop.无论是函数式编程还是oop都是相辅相成.并不是说oop比函数式编程就好.各有各的优缺点.在其他语言中java等只能以面向对象 ...

  2. python解析xml模块封装代码

    在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ...

  3. 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时间 ...

  4. python全栈开发-hashlib模块(数据加密)、suprocess模块、xml模块

    一.hashlib模块 1.什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 ...

  5. 【python标准库模块五】Xml模块学习

    Xml模块 xml本身是一种格式规范,是一种包含了数据以及数据说明的文本格式规范.在json没有兴起之前各行各业进行数据交换的时候用的就是这个.目前在金融行业也在广泛在运用. 举个简单的例子,xml是 ...

  6. Python xml 模块

    Python xml 模块 TOC 什么是xml? xml和json的区别 xml现今的应用 xml的解析方式 xml.etree.ElementTree SAX(xml.parsers.expat) ...

  7. python之xml模块

    # XML 模块的操作参考链接 # http://www.cnblogs.com/yuanchenqi/articles/5732581.html

  8. hashlib,hmac,subprocess,configparser,xlrd,xlwt,xml模块基本功能

    hashlib模块:加密 import hashlib# 基本使用cipher = hashlib.md5('需要加密的数据的二进制形式'.encode('utf-8'))print(cipher.h ...

  9. python configparse模块&xml模块

    configparse模块 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. [DEFAULT] serveraliveinterval = ...

  10. xml模块、项目开发过程

    一.XML模块 xml指的是可扩展标记语言,是一种定义电子文档结构和描述的语言,可以用来标记数据.定义数据类型. 什么时候用xml? 当需要自定义文档结构时,使用xml.在java中经常会使用xml来 ...

随机推荐

  1. PHP之区域块链

    搭建一个最简单的区块链吧.代码简单易懂. <?php //区域块链 //block 区块 // chain 链 //data  //之前区块的has值 //自己的has值 : 他是由存储在区块链 ...

  2. 14. static(静态) 关键字

    1.修饰成员变量 1)定义:数据需要被共享给所有对象使用使用static修饰(全局变量) 2)注意: 1.用static中创建的成员变量在内存中只有一份 2.千万不要为了方便访问数据而使用static ...

  3. C/C++各个周期的学习

    C/C++ 程序的生命周期 编写时: 要点:业务,数据结构,控制解耦:健壮:易修改:清晰简单无歧义:易重用:低耦合高内聚:易链接:速度快(时间复杂度,空间复杂度,cache友好): 书籍:<c+ ...

  4. 【JZOJ3918】蛋糕

    description 今天是Bessie的生日,他买了一个蛋糕和朋友们一起分享,蛋糕可以看成是一个R行C列的表格,共有R*C个格子,每个格子都有一个0至9的数字,表示该格子蛋糕拥有的巧克力.现在Be ...

  5. [JZOJ 5600] Arg

    题意:求最少LIS覆盖... 思路: 计算\(LIS\)时我们一般用\(dp\)表示到当先位置时以当前位置结尾的\(LIS\)最长长度. 那么这个数组保证单调不降,我们考虑二进制表示. 然后就是转移了 ...

  6. Contos7 FTP 安装步骤

    1. 使用rpm -q vsftpd查看是否已安装2.如未安装使用yum -y install vsftpd安装3.修改ftp配置文件vim /etc/vsftpd/vsftpd.conf,修改内容如 ...

  7. 在Debian中安装VNC Server

    大部分情况下我们用ssh就可以登录linux服务器了.但有时候我们的程序需要在图形界面下运行,这时我们就要用到vnc server这个软件了. 在Debian下安装vnc server很简单的,只要几 ...

  8. UVA 240 Variable Radix Huffman Encoding

    题目链接:https://vjudge.net/problem/UVA-240 题目大意 哈夫曼编码是一种最优编码方法.根据已知源字母表中字符出现的频率,将源字母表中字符编码为目标字母表中字符,最优的 ...

  9. 运行mybatis项目,运行测试类,点击test后,出现Cannot start compilation: the output path is not specified for module "前......

    Cannot start compilation: the output path is not specified for module "前 后来发现是在pom.xml右击,有个+号,把 ...

  10. POJ1149_PIGS(网络流/EK)

    PIGS Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 15721   Accepted: 7021 Description ...