首先XML是可扩展标记语言

双标签 < tag>中间是文本<tag>

单标签 <tag/> 没有文本 一般用于设计文档结构,例如换行等

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

<tr/> 是表示换行

 

<tag style="color:red" age="18">12345</tag>

一个标签的完整组成 有三个部分:

  tag是标签名称,

  12345是文本内容 text

  name = "jack" 是标签的属性

还有其他的一些规范

1:又开始就必须有结束

2:所有属性值必须包含在双引号里面

3:只能有一个根标签,(最外层只能有一个标签)

4:开始标签和结束标签的顺序是相反的,最先打开谁谁就最后被关闭 最后打开的先关闭

5:文档声明可以不写,只要告诉浏览器该怎么解析这个文件

 

与json的区别

  xml是一种可扩展的标记语言

  可以自定义文档的结构,数据类型,标签的含义等等

  所以扩展性远比json要强

  

  json更加适用于前后台数据交换,   优点 是轻量级. 跨平台 语法简洁

  xml更多用来作为配置文件,  在python里不常用

  html就是一种xml

然后是使用xml

import xml.etree.ElementTree as ET

#打开一个文档,得到一个元素树,(就是xml文档对象)

tree=ET.parse("文件路径")

#获取根标签对象

root=tree.getroot()

 

解析xml得到一个根标签对象后,查找标签的4种方式

1:iter()

  查找的范围是所有的标签

  如果没有参数则查找所有标签

  如果有参数则查找所有名字匹配的标签

2:find()

  必须给参数

  查找当前标签的子标签.返回第一个名字匹配的

 

3:findall()

  必须给参数

  查找当前标签的子标签,返回所有名字匹配的

4:直接直接遍历某个标签

  返回的是这个标签的所有子标签

获取标签的某个详细内容

#获取标签名称

root.tag 

#获取标签的所有属性

root.attrib 返回的是一个字典

 

root.text 获取标签的文本内容

修改标签的某个属性

# 修改文本

root.text="新文本"

 

#修改属性

root.set("name","jack")  有name这个属性了就覆盖,没有则添加

#修改标签名字

root.tag = "data"

tree.write("test.xml") #写入到文件

 

#删除某个标签

remove函数,需要一个被删除的标签作为参数.只能由父标签 来删除子标签

tree.write("test.xml") #写入到文件

 

添加标签

#先创建一个需要被添加的子标签

new_tag=ET.Element("this_is_new_tag")

#设置文本

new_tag.text="123456"

root.append(new_tag) #把新创建的标签添加到root下

tree.write("test.xml") #写入到文件

最后是代码生成xml文档

首先创建标签

tag=ET.Element("data")

#设置文本

tag.text="123456"

#设置属性

tag.sat("name","jack")

 

#创建一个元素树,并把tag添加到上面

tree= ET.ElementTree(tag)

#写入文件

tree.write("test.xml")

面向对象

首先面向过程的编程思想

  关注的点就是完成任务的过程

  第一步

  第二步

  一步一步按照固定的顺序来完成任务

  是一种机械化的思维,就像一条流水线.制定流水线只能生产制定产品

  缺点:
    牵一发而动全身 扩展性非常低,可维护性差
  优点:
    将复杂的事情,简单化,并流程化
  应用场景:
    对扩展要求较低的程序
    系统内核,shell脚本,计算器啥的

  面向对象优点:
    不需要在关注具体的实现细节 可以更好的关注业务逻辑
    扩展性提高了,维护性高,复用性高
  缺点:
    对比面向过程而言.程序需要先设计,结构更复杂,编程复杂度提高了
    无法准确预知执行结果
  应用场景:
    对于扩展性要求较高的应用程序
     qq,微信,王者荣耀


面向对象是一种编程思想,让你不需要关心具体实现细节,而是关注对象
优点:扩展性高,复用性,维护性

什么是对象?
万事万物都是对象
对象:具备某种特征与行为的集合体并且是具体存在的就称之为对象

类: 某些具备相同特征和相同行为的集合体 ,是一种抽象概念 类型==类
人,动物

特征==属性
行为==技能


对象和类的关系
在生活中 先有对象 再有类
在代码中 必须现有类 才能产生对象 (因为你需要提前告诉计算机这个对象是什么样的有什么技能)

使用class关键字来定义一个类

类名使用大驼峰命名法

所有单词首字母大写

小驼峰.第一个单词首字母小写.其他的首字母大写

class ClassName:

  pass

  面熟特征使用变量,(属性)

  school = "oldboy"

  描述技能使用函数(方法)

  def say_hi():

    print("hello world")

#class中的代码仅在第一次加载时执行

因为创建类就是创建了一个名称空间, 创建对象就是再创建一个名称空间 并与之类关联

执行一次 就创建了一个名称空间,下次再次执行就直接去名称空间找了

 

 

用类名加括号 返回的是一个对象

stu_obj=Student()

 

#为对象添加属性 只在当前对象可以访问到

stu_obj.name="jiux"

对象访问属性或方法时 优先访问自己名称空间的内容.如果找不到 就会自动找类中的属性

因为每个对象都会存储自己所在类中的地址,可以使用__class__来访问

 

查看名称空间中的内容是用__dict__

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄