常用模块——xml模块

Posted msj513

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用模块——xml模块相关的知识,希望对你有一定的参考价值。

XML 可扩展标记语言

格式:<></>

也是一种通用的数据格式

之所以用它是因为块平台性。

语法格式

一、任何的起始标签都必须有?一个结束标签。
<> </>
二、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标
签。这种语法是在?于符号之前紧跟一个斜线(/),XML
解析器会将其翻译成<百度百科词条></百度百科词条>。
例例如<百度百科词条/>。

三、标签必须按合适的顺序进?行行嵌套,所以结束标签必须按镜像顺序匹配
起始标签。这好?比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有
的内部括号之前,是不不能关闭外?面的括号的。
四、所有的特性都必须有值。
五、所有的特性都必须在值的周围加上双引号。

一个标签的组成部分:
<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直接转对象。

d.xml

 

<?xml version="1.0" encoding="utf-8" ?>
<studentinfo>
     <stu age="20" name="张三">
         <girlfriend age="19" name="张三的女朋友" />
    </stu>
    <stu age="20" name="李四">
         <girlfriend age="19" name="李四的女朋友" />
    </stu>
</studentinfo>

解析xml

 

import xml.etree.ElementTree as ElementTree
#解析d,xml
tree = ElementTree.parse(d.xml)
print(tree)#<xml.etree.ElementTree.ElementTree object at 0x0000000002429BA8>
rootTree=tree.getroot()#获得根标签
print(rootTree)#<Element ‘studentinfo‘ at 0x00000000023DBA48>

获得根标签下子标签三种方式:

iter("tagname")

# 种获取标签的方式
# 获取所有人的年龄 iter是用于在全文范围获取标签
for item in rootTree.iter("age"):
    print(item.tag)
    print(item.attrib)
    print(item.text)

 结果

age
{‘name‘: ‘1‘}


age
{‘name‘: ‘2‘}

 

 find()只是找到第一个标签

print(rootTree.find(age).attrib)
#{‘name‘: ‘1‘}

findall()找到所有符合标签名

print(rootTree.findall(age).__iter__().__next__().attrib)
#{‘name‘: ‘1‘}

获得单个属性

stu = rootTree.find("stu")
print(stu.get("age"))
print(stu.get("name"))

删除子标签

rootTree.remove(stu)

创建新的标签

new = ElementTree.Element(new_tag,{属性名:111})
rootTree.append(new)
tree.write(f.xml,encoding=utf-8)#写入文件

 




























以上是关于常用模块——xml模块的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

python - 常用模块 - xml处理模块

常用模块——xml模块

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess

Python常用模块学习