day23(XML,面向对象基础)

什么是XML 

XML与JSON的对比

XML文档格式

使用XML模块解析

 

一,什么是XML

'''
XML 全称可扩展标记语言
<tag></tag> 双标签 <tag/> 单标签 没有文本 一般用于设计文档结构 例如:换行等 <tr/>表示换行 <tag style='color:red' age='18' >123456</tag> 一个标签的完整组成 有三个部分 tag 是标签名称 1234是文本内容 text name = 'jack' 是标签的属性 其他的规范: 1,从开始就必须结束 2,所有属性值必须必须在双引号里面 3,只能有一个根标签 (最外层只能有一个标签) 4,开始标签和结束标签的顺序是相反的 ,最先打开谁,就最后关闭谁,最后打开的最先关闭 文档声明可不写,主要是告诉浏览器,该怎么解析这个文件 XML模块是自带的,不需要安装 与JSON的区别: XML 是一种可扩展的标记语言 可以高度 自定义文档的结构,数据类型,标签的含义,使用场景广泛,不局限于前后台的数据交互,在其他语言中还经常作为配置文件来使用 所以扩展性远比JSON要强,XML用做数据交换格式的话,远不如json来的简单,JSON更加适用于前后台数据交换 JSON优点: 轻量级,跨平台,语法简洁 使用场景:多为前后台交互 XML更多用来作为配置文件,当然python不太常用,HXML也属于XML 总结,xml的解析比起json而言非常复杂 因为其扩展性远比json高,在java中常作为配置文件,当你在前后台进行数据交互时,优先使用json格式
'''''

1.**三个用于查找标签函数
  iter("标签名") #全文查找
  find("标签名") #查找子节点匹配的第一个
  findall("标签名") #查找子节点匹配的所有标签


2.**访问标签的内容
  element.tag 获取标签名
  element.attrib 获取属性
  element.text 获取文本

3.修改文档内容
  elment.tag = "标签名"
  element.text = "文本"
  element.set("属性名","属性值")

4.删除节点
  root.remove(标签对象)

5.添加子标签
  #创建标签对象
  year2=ET.Element('year2') # 指定名称
  year2.text='新年'
  year2.attrib={'update':'yes'}
  #添加
  country.append(year2) #往country节点下添加子节点

删除添加修改后都需要调用write写入到文件
  tree.write("文件名"),#注意文档对象才能执行写入操作

import xml.etree.ElementTree as ET
#打开一个文档,得到一个元素树(XML文档)
tree = ET.parse('test.xml')
#获取根标签
root = tree.getroot()
print(root)             #<Element 'data' at 0x000001FE7FBEDEA8>

#遍历出root标签的所有子标签
for tag in root:
    print(tag)

#遍历出文档中所有标签
for tag in root.iter():
    print(tag)

#从root下查找第一个名为country的子标签
country = root.find('country')
print(country)          #<Element 'country' at 0x000001F46BA8C3B8>

#从root下查找所有名字为country的子标签
countrys = root.findall('country')
print(countrys)

#从root下查找所有名字为county的子孙标签
for tag in root.iter('country'):
    print(tag)

''' 解析XML得到一个tree对象后,查找标签的4种方式 1,iter() 如果没有参数则查找所有标签 如果有参数则查找所有名字匹配的标签 查找范围 为全文 2,find() 必须给参数 查找当前标签的子标签,返回第一个名字匹配的 3,findall() 必须给参数 查找当前标签的子标签,返回所有名字匹配的 4,直接遍历某个标签 返回的是这个标签的所有子标签 '''

二,

猜你喜欢

转载自www.cnblogs.com/HZLS/p/10876980.html
今日推荐