xml 模块

本文深入探讨了XML(可扩展标记语言)的基本语法和特点,包括其与JSON的对比,重点讲解了XML的标签规则、属性使用及文本内容的封装。通过实际案例展示了如何使用Python的xml.etree.ElementTree模块来解析和操作XML文件。

xml  可扩展的标记语言

<> </>

也是一种通用的数据格式

之所以用它也是因为跨平台    (但是在json出现之前就已经存在,所以海有一些公司还在用)

 

学习的重点还是语法格式

  1.任何的起始标签都必须有一个结束标签。 <>  </>

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

<百度百科词条/>

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

  4.所有的特性都必须有值

  5.所有的特性都必须在值的周围加上双引号。

  一个标签的组成部分

  <tagename 属性名称=“属性值”>文本内容</tagename>

  当标签的写法

  <tagename 属性名称 = “属性值”>

镜像关闭顺序实例

 <a>

  <b>

    <c>

    </c>

  </b>

</a>

把您的左右同学信息写成xml

<studentinfo>
<张三>
<age>20</age>
<gender>man</gender>
</张三>
<李四>
<age>20</age>
<gender>man</gender>
</李四>
</studentinfo>

  总结 xml 也是一种中间格式也属于序列化方式之一

  与json相比较

  同样的数据    json会比xml更小 效率更高

  xml需要根据文档结构手动解析  而 json 直接转对象

import xml.etree.ElementTree as ElementTree
# 解析d.xml
tree = ElementTree.parse("d.xml")
print(tree)
# 获取根标签
rootTree = tree.getroot()

# 三种获取标签的方式
# 获取所有人的年龄 iter是用于在全文范围获取标签
# for item in rootTree.iter("age"):
# # 一个标签三个组成部分
# print(item.tag) # 标签名称
# print(item.attrib) # 标签的属性
# print(item.text) # 文本内容

# 第二种 从当前标签的子标签中找到一个名称为age的标签 如果有多个 找到的是第一个
# print(rootTree.find("age").attrib)
# 第三种 从当前标签的子标签中找到所有名称为age的标签
# print(rootTree.findall("age"))


# 获取单个属性
stu = rootTree.find("stu")
print(stu.get("age"))
print(stu.get("name"))

# 删除子标签
rootTree.remove(stu)


# 添加子标签
# 要先创建一个子标签
newTag = ElementTree.Element("这是新标签",{"一个属性":"值"})
rootTree.append(newTag)

# 写入文件
tree.write("f.xml",encoding="utf-8")

 

转载于:https://www.cnblogs.com/frank007/p/9807028.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值