xml模块介绍
# xml 是一门可拓展的语言
# xml 语法 是用<>包裹的起来的<>就是标签, xml可以由多个<>组成 也可以由单个<>组成,
# <tag></tag> 双标签
# <tag/> 单标签 没有文本 一般用于设计文档结构 例如换行等
# <tr/> 表示换行
# xml的组成部分 1)标签名称 2)文本信息 test 3)标签属性
案例
'''
例如
<tag style="color:red" age="18">12345</tag>
一个标签的完整组成 有三个部分
tag 是标签名称
12345 是文本内容 text
style="color:red" age="18" 是标签的属性 其他的规范
1.又开始就必须有结束
2.所有属性值必须包含在双引号里面
3.只能有一个根标签 (最外层只能有一个标签)
4.开始标签和结束标签的顺序是相反的 最先打开谁 就最后关闭谁 最后打开的最先关闭
'''
xml模块的运用
# 可以理解为解析树的过程 树-根标签-子标签
# 1:首先导入xml文本 ==相当于得到一个树
'''
import xml.etree.ElementTree as ET
tree =ET.parse('test1.xml') # 相当于得到一个树 就是得到xml文档
# 2 获取跟标签
root = tree.getroot() # 获取跟标签
'''
# 3 获取跟下面的标签
# 获取所有子标签root.iter() 获取所有某某子标签root.item('参数')
# 获取单标签 root.find('参数')
# 获取多标签root.fandall(参数) # 遍历所有root跟的标签
# for tag in root:
# print(tag) # 遍历test1.xml文档下的所有标签
# for tag in root.iter(): # iter 可迭代的一种对象
# print(tag) # 从root下查找第一个名字为country的子标签
# country = root.find('country')
# print(country) # <Element 'country' at 0x000001FC622A9638> # 从root下查找所有名字为country的子标签
# countrys = root.findall('country')
# print(countrys) # 从root下查找所有名字为country的子孙标签
'''
for tag in root.iter('country'):
print(tag)
'''
"""
查找标签的4种方式test1.xml
1.
iter()
如果没有参数则查找所有标签
如果有参数则查找所有名字匹配的标签
查找范围
为全文 2.
find()
必须给参数
查找当前标签的子标签
返回第一个名字匹配的 3.
findall()
必须给参数
查找当前标签的子标签
返回所有名字匹配的 4.
直接遍历某个标签
返回的是这个标签的所有子标签
"""
与json的区别
'''
    xml 是一种可扩展的标记语言
    可以高度自定义文档的结构 数据类型 标签的含义等等
    所以扩展性远比JSON要强
    json更加适用于 前后台数据交换  优点 轻量级  跨平台 语法简洁
    xml更多用来作为配置文件 当然 python不太常用
    html就是一种xml
'''
# 获取某个标签的内容 (则是找到标签名称 标签属性 和文本信息)
'''
import xml.etree.ElementTree as ET
tree =ET.parse('test1.xml')
root = tree.getroot()
ob = root.findall('country')
# 找到标签名称
for i in ob:
    print(i.tag) # 标签名称
    print(i.attrib) # 标签的所有属性 返回一个字典
    print(i.text)  # 标签的文本内容
'''
import xml.etree.ElementTree as ET
from xml.etree.ElementTree import Element
# tree = ET.parse("test.xml")
# root = tree.getroot()
# # 修改文本
# root.text = "这是跟标签的文本"
# # 修改属性 没有则添加 有则覆盖
# root.set("name","jack")
# # 修改标签名字
# root.tag = "data"
#
# tree.write("test2.xml",encoding="utf-8",xml_declaration=True)
# 把test1.xml 中所有year标签的text加1
# tree = ET.parse("test1.xml")
# root = tree.getroot()
# for e in root.iter("year"):
#     e.text = str(int(e.text) + 1)
#
#
# tree.write("test1.xml")
#
# 把test1.xml 中所有gdppc删除
# remove 函数 需要一个标签作为参数 即要被删除的标签   然后只能有父标签来删除子标签
# tree = ET.parse("test1.xml")
# root = tree.getroot()
#
# for c in root.iter("country"):
#     gdppc = c.find("gdppc")
#     if gdppc != None:
#         c.remove(gdppc)
#
# tree.write("test4.xml")
# 添加标签
tree = ET.parse("test1.xml")
root = tree.getroot() # type:Element
# 创建需要被添加的子标签
new_tag = Element("ThisIsNewTag")
new_tag.text = "123" # 设置文本
root.append(new_tag) # 添加到root下
tree.write("test5.xml") # 写入文件
xml模块介绍的更多相关文章
- Python day19 模块介绍3(sys,json,pickle,shelve,xml)
		1.sys模块 import sys sys.path()#打印系统path sys.version()#解释程序版本信息 sys.platform()#系统平台 sys.exit(0)#退出程序 c ... 
- day23 xml模块、面向对象编程介绍
		今日内容: 1.xml模块 2.面向对象编程 一.xml模块 什么是xml? xml是一种可扩展的标记语言 xml语言的语法: <person name="jack"> ... 
- webkit模块介绍
		一.Webkit模块 用到的第三方库如下: cairo 一个2D绘图库 casqt Unicode处理用的库,从QT中抽取部分代码形成的 expat 一个XML SAX解析器的库 freety ... 
- python解析xml模块封装代码
		在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ... 
- python模块介绍- multi-mechanize 性能测试工具
		python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ... 
- Python第五章__模块介绍,常用内置模块
		Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群 群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ... 
- Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken
		Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ... 
- day36-常见内置模块五(collections、xml模块)
		一.collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counter ... 
- 大数据技术之_14_Oozie学习_Oozie 的简介+Oozie 的功能模块介绍+Oozie 的部署+Oozie 的使用案列
		第1章 Oozie 的简介第2章 Oozie 的功能模块介绍2.1 模块2.2 常用节点第3章 Oozie 的部署3.1 部署 Hadoop(CDH版本的)3.1.1 解压缩 CDH 版本的 hado ... 
随机推荐
- mysql在当前服务器复制数据库
			mysqldump newwq -u root -proot --add-drop-table | mysql jxg -u root -proot 
- php函数 之  iconv  不是php的默认函数,也是默认安装的模块。需要安装才能用的。
			windows下最近在做一个小偷程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些. 让我郁闷了好 ... 
- 微弱信号二次谐波检测的FPGA的实现-总结
			首先还是把握大的系统框架: 我要实现的部分不包括DA以及AD的转换,主要是将SSP接收到的数据送入到FIFO中,然后经过FIR带通滤波器的处理后对该信号计算幅值并做PSD,然后处理的信号经过积分够一方 ... 
- ACG记录整理
			资料来源 日文维基百科 bangumi番组计划 中文维基百科 百度百科 豆瓣电影 资料类型 テレビアニメ OVA アニメ映画 Webアニメ 内容说明 番名,带超链接介绍,尽量选用国内网站介绍, ... 
- 为Nginx启用目录浏览功能
			今天工作需要,要给客户提供一个patch的下载地址,于是想用nginx的目录浏览功能来做,需要让客户看到指定一个目录下的文件列表,然后让他自己来选择该下载那个文件: 我们都知道在apache下可以配置 ... 
- [LC] 92. Reverse Linked List II
			Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ... 
- node.js 和 npm/cnpm/nrm 的安装
			node.js 和 npm/cnpm/nrm 的安装 安装 node.js.去 官网 下载,下载 LTS 版本的.安装时一路点确定,不要改动任何设置. 在 git-bash 或是 cmd 下,输入 n ... 
- Java POI导出Excel不弹框选择下载路径(下载文件不选择下载路径,默认)   Chrome
			在Chrome浏览器中,Java导出Excel文件时,浏览器弹出提示框,需要选择下载路径 在Chrome中的高级设置中,把“下载前询问每个文件的保存位置”去掉就解决了 DEEPLOVE(LC) 
- IDEA工具java.io.IOException: Could not find resource SqlMapConfig.xml
			IDEA工具java.io.IOException: Could not find resource SqlMapConfig.xml 解决办法: 1.删掉pom.xml文件的这行代码 <pac ... 
- 算法笔记-Day_01(1001 害死人不偿命的(3n+1)猜想
			卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍下去,最后一定在某一步得到 n=1.卡拉兹在 1950 ... 
