什么XML:全称 可扩展标记语言 标记指的是代表某种含义的字符 XML<> 为什么需要XML 为能够在不同的平台间继续数据的交换 为了使交换的数据能让对方看懂 就需要按照一定的语法规范来书写 XML语法格式: 一、任何的起始标签都必须有一个结束标签。 <tagname></tagname> <tagname></tagname> <tagname/> 简化写法 二、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<百度百科词条/>。XML解析器会将其翻译成<百度百科词条></百度百科词条>。 三、标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如这是一串百度百科中的样例字符串。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。 <tag1> <tag2> <tag3> </tag3> </tag2> </tag1> 大白话 关闭标签应该从内往外 一层一层关闭 顺序不能乱 四、所有的特性都必须有值。 特性指的是属性 <person name=""> </person> 五、所有的特性都必须在值的周围加上双引号。 注意:最外层有且只有一个标签 这个标签称之为根标签 第一行应该有文档声明 用于高速计算机怎么理解 例如:<?xml version="1.0" encoding="utf-8"?> 当标签嵌套的时候会出现层级关系 如果一个标签不被任何别的标签包裹 那他就是根标签(最外层) 使用场景: 1.配置文件 2.常规的数据交换 例如从服务器获取一段新闻 与json的区别: 作用是一样的 都是一种数据格式 xml比json先诞生 json的数据比xml小 目前json是主流 python中的xml处理 使用到的模块 ElmentTree 表示整个文件的元素树 Elment 表示一个节点 属性 1.text 开始标签和结束标签中间的文本 2.attrib 所有的属性 字典类型 3.tag 标签的名字 方法 get 获取某个属性的值 1.解析XML 查找标签 find 在子标签中获取名字匹配第一个 findall 在子标签中获取名字匹配的所有标签 iter(tagname) 在全文中查找[匹配的所有标签 返回一个迭代器 2.生成XML 用ElmentTree parse() 解析一个文件 getroot() 获取根标签 write() 写入到文件 3.修改xml set 一个属性 remove 一个标签 append 一个标签 语法格式练习: 要求把你的同桌的手机信息用xml来描述 """ import xml.etree.ElementTree as et 读取xml文档到内存中 得到一个包含所有数据的节点树 每一个标签就称之为一个节点 或 元素 tree = et.parse("text.xml") 获取根标签 root = tree.getroot() 获取所有的country 找的是第一个 print(root.find("country")) 找的是所有 print(root.findall("country")) 获取year print(root.iter("country")) for i in root.iter("country"): print(i) 遍历整个xml for country in root: print(country.tag,country.attrib,country.text) for t in country: print(t.tag, t.attrib, t.text) print(root.find("country").get("name"))
XML模块
最新推荐文章于 2023-12-07 19:30:00 发布