xml文件解析模块

一 xml模块运用
import xml.etree.ElementTree as ET

tree = ET.parse("a.xml")
root = tree.getroot()

# 对于任何标签都有三个特征:标签名、标签属性、标签的文本内容
# print(root.tag)
# print(root.attrib)
# print(root.text)

# print(list(root.iter('year'))) #全文搜索,找到所有
# for year in root.iter('year'):
# print(year.tag)
# print(year.attrib)
# print(year.text)
# print('='*100)


# print(root.find('country').attrib) #在root的子节点找,只找一个
# print([country.attrib for country in root.findall('country')]) #在root的子节点找,找所有


# 1、查
#遍历整个文档
# for country in root:
# print('============>国家 %s' %country.attrib)
# for item in country:
# print(item.tag)
# print(item.attrib)
# print(item.text)

#2、改
# for year in root.iter('year'):
# print(year.tag)
# year.attrib={'updated':'yes'}
# year.text=str(int(year.text)+1)
#
# tree.write('a.xml')

#3、增
# for country in root:
# rank=country.find('rank')
# if int(rank.text) > 50:
# # print('符号条的国家',country.attrib)
# tag=ET.Element('egon')
# tag.attrib={'updated':'yes'}
# tag.text='NB'
# country.append(tag)
#
# tree.write('a.xml')
#4、删

for country in root:
tag=country.find('egon')
# print(tag,bool(tag))
if tag is not None:
print('====>')
country.remove(tag)
tree.write('a.xml')

二 xml模块的汇总

什么是xml 是一种标记语言(计算机能识别的文本)

xml有什么用 制定了一种文本书写规范,使得计算机能够轻松识别这些数据 就和python一样

为什么不直接⽤python语言来进行传输,计算机识别起来太费劲(语法太多,变化太复杂)所以需一种更加简单的解决方案 xml语法标准

一、任何的起始标签都必须有一个结束标签。

二、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标 签。这种语法是在大于符号之前紧跟一个斜线(/),例如<百度百科词条/>。XML 解析器器会将其翻译成<百度百科词条></百度百科词条>。

三、标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配 起始标签。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有
的内部括号之前,是不能关闭外面的括号的。

四、所有的特性都必须有值。

五、所有的特性都必须在值的周围加上双引号。 总结 xml 是一种数据格式遵循一定书写规范,用于多个平台之间的数据交换,和json的作⽤用是一样的

python中的xml 学习重点 1.标签的组成 <tagname attributename="value"> text <subtags/> </tagname>

2.数据解析(拿到想要的数据) 3.代码生成xml文档 了解知识点 1.数据的修改

数据准备 <?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> 导入核心模块 import xml.etree.ElmentTree 表示节点树 数据解析 Elment核⼼心成员 tag attrib text 常用方法 Elment getchildren() 获取所有子标签 find 从子标签中获取名字匹配的第一个子标签 findall 从子标签中获取名字匹配的所有子标签 iter 从子全⽂中获取名字匹配的所有标签 返回迭代器 get 获取指定属性的值 append 删除子标签 remove 添加删除子标签 Elmenttree parse 文本文件转对象 dump 对象转⽂本 write 写入 getroot 获取根标签 生成xml创建节点
添加内容转为节点树写入文件








posted @ 2018-09-22 01:53  不沉之月  阅读(373)  评论(0编辑  收藏  举报