一、xml  标签语法

    二、面向对象

一、xml

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

<tag style="color:red" age="20">123123</tag>
tag:是标签名称
123123:是文本内容 text
style="color:red" age="20" :是标签的属性 
<tag></tag>  双标签
<tag/>     单标签 没有文本内容,一般用于设计文档结构,Eg:换行等
<tr/>      表示换行

其它的规范:

  1 有开始就必须有结束

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

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

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

文档声明可写可不写,主要是告诉浏览器,怎么去解析这个文件

xml模块是自带的,不需要安装

xml 与 json 的区别

  xml是一种可拓展的标记语言,可以高度自定义文档的结构 数据类型 标签的含义等等

  拓展性远比JSON要强

  json更加适用于 前后台的数据交换

  优点是:轻量级 跨平台 语法简介

  xml 更多用来作为配置文件,Python不太常用

HTML就是一种 xml

  import xml.etree.ElementTree as ET

读文件  得到一个元素树
  tree = ET.parse("xmltest.xml")

根节点  获取根目录
  root_ele = tree.getroot()

遍历下一级
  for ele in root_ele:
    print(ele) 

全文搜索指定名的子标签:ele.iter("标签名")

非全文查找满足条件的第一个子标签:ele.find("标签名")

非全文查找满足条件的所有子标签:ele.findall("标签名")

标签名:ele.tag

标签内容:ele.text

标签属性:ele.attrib


my_ele=ET.Element('myEle')    标签对象
  my_ele.text = 'new_ele' 
  my_ele.attrib = {'name': 'my_ele'}    
  root.append(my_ele)


 

sup_ele.remove(sub_ele)

改 

ele.tag = "新标签名"
  ele.text = "新文本"
  ele.set("属性名", "新属性值")

查 

root.iter/find/findall

重新写入硬盘

tree.write("文件名.xml")

二、面向对象

什么是面向对象:

  面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想

面向对象将对象作为程序的基本单元将数据和处理数据的程序封装到对象中以提高软件的重用性、灵活性和扩展性为首要目的

什么是类:类就是类型,类别,种类; 是一系列对象中相似特征与技能的结合体

  类和对象是面向对象编程中最核心的两个概念 

定义类:通过class关键字来定义

  class 后面紧跟的是类名,遵循python编码规范,类名通常是大写开头的单词,多个单词时使用大驼峰命名法

什么是对象:万事万物都是对象

对象:具备某种特征与行为的集合体并且是具体存在的就称之为对象  Eg:如来佛祖,owen

    特征==属性

    行为==技能

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

编程思想不是某一个具体语言或技术 ,
  面向对象的语言:
    python,Java,C++,C#
  面向过程:
    C,ruby

面向对象

优点:

  不需要在关注具体的实现细节 可以更好的关注业务逻辑

  扩展性提高了,维护性高,复用性高

缺点:

  对比面向过程而言.程序需要先设计,结构更复杂,编程复杂度提高了

  无法准确预知执行结果

应用场景:

  对于扩展性要求较高的应用程序  Eg:qq,微信,王者荣耀

在访问时优先访问自己名称空间的内容 如果找不到 会自动找类中的属性

print(p1.country)
  print(Person.country)

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

print(p1.__class__)
print(type(p1))

查看名称空间中的内容 __dict__

__dict__)
__dict__)