加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python模块之xml

发布时间:2020-12-17 00:23:58 所属栏目:Python 来源:网络整理
导读:h1 id="xml模块"xml模块 xml结构 xml是种实现不同语言或程序之间进行数据交换的协议,跟json差不多,但没json使用简单。但是因为历史遗留问题,至今很多行业依然使用xml这种数据格式。 xml的格式如下,是通过 节点来区别数据结构的。 frd age="22" name="袁

<h1 id="xml模块">xml模块

  1. xml结构

xml是种实现不同语言或程序之间进行数据交换的协议,跟json差不多,但没json使用简单。但是因为历史遗留问题,至今很多行业依然使用xml这种数据格式。

xml的格式如下,是通过<>节点来区别数据结构的。



     
    
<frd age="22" name="袁靖"&gt;
     <info qq="2410152779" wechat="wxid_2vykc0sjoiie21" />
</frd>

<frd age="22" name="卫一帆"&gt;
     <info qq="97280940" wechat="oOC" />
</frd>

<frd age="22" name="胡文涛"&gt;
     <info qq="2522864970" wechat="hu2522864970" />
</frd>
  1. 语法结构
  • 任何的起始标签都必须有一个结束标签。 <>
  • 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于号之前紧跟一个斜杠(/),例如,解析器会将其翻译成
  • 标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签。这好比将起始和结束标签看作是数学中的左右罗浩:在没有关闭所有的内部括号之前,是不能关闭外面括号的。
  • 所有的特性都必须有值。
  • 所有的特性都必须在值得周围加上双引号。
  • 一个标签的组成部分包括:标签名、属性名以及属性值、还有文本内容(可以没有)

双标签的写法:

单标签的写法:

总结:xml也是一种中间格式,也属于序列化方式之一,与json比较,同样的数据json会更小,效率更高;xml需要根据文档结构手动解析,而json直接可以转为python数据对象。

  1. xml模块用法
# d.xml


     
    
    
    
<age num="1"&gt;
    <age num="2"&gt;
        <age num="3"&gt;

        </age>
    </age>
</age>

<age>

</age>
import xml.etree.ElementTree as ElementTree
tree = ElementTree.parse('d.xml')
rootTree = tree.getroot()
# 三种获取标签的方式
# 1. 获取所有人的年龄,iter用于在全文范围获取标签
for item in rootTree.iter('age'):
    # 一个标签三个组成部分
    print(item.tag) # 标签名称
    print(item.attrib) # 标签的属性
    print(item.text) # 文本内容
# 2. 从当前标签的子标签中找到一个名称为age的标签,如果有多个,找到的是第一个
print(rootTree.find('age').attrib)
# 3. 从当前标签的子标签中找到所有名称为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')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读