python模块之xml
xml模块
- xml结构
xml是种实现不同语言或程序之间进行数据交换的协议,跟json差不多,但没json使用简单。但是因为历史遗留问题,至今很多行业依然使用xml这种数据格式。
xml的格式如下,是通过<>节点来区别数据结构的。
<?xml version="1.0" encoding="utf-8"?>
<friendsinfo>
<frd age="22" name="任盼晨">
<info qq="1114893928" wechat="Dmgwood" />
</frd>
<frd age="22" name="袁靖">
<info qq="2410152779" wechat="wxid_2vykc0sjoiie21" />
</frd>
<frd age="22" name="卫一帆">
<info qq="97280940" wechat="oOC" />
</frd>
<frd age="22" name="胡文涛">
<info qq="2522864970" wechat="hu2522864970" />
</frd>
</friendsinfo>
- 语法结构
- 任何的起始标签都必须有一个结束标签。 <> </>
- 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于号之前紧跟一个斜杠(/),例如,解析器会将其翻译成
- 标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签。这好比将起始和结束标签看作是数学中的左右罗浩:在没有关闭所有的内部括号之前,是不能关闭外面括号的。
- 所有的特性都必须有值。
- 所有的特性都必须在值得周围加上双引号。
- 一个标签的组成部分包括:标签名、属性名以及属性值、还有文本内容(可以没有)
双标签的写法:
<tagename '属性名称'="属性值">文本内容</tagname>
单标签的写法:
<tagename 属性名称="属性值"/>
总结:xml也是一种中间格式,也属于序列化方式之一,与json比较,同样的数据json会更小,效率更高;xml需要根据文档结构手动解析,而json直接可以转为python数据对象。
- xml模块用法
# 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>
<age num="1">
<age num="2">
<age num="3">
</age>
</age>
</age>
<age>
</age>
</studentinfo>
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')
python模块之xml的更多相关文章
- Python模块 shelve xml configparser hashlib
常用模块1. shelve 一个字典对象模块 自动序列化2.xml 是一个文件格式 写配置文件或数据交换 <a name="hades">123</a>3. ...
- python模块:xml
"""Core XML support for Python. This package contains four sub-packages: dom -- The W ...
- python模块(shelve,xml,configparser,hashlib,logging)
1.1shelve模块 shelve 模块比pickle模块简单,只有一个open函数,返回类似字典对象,可读可写:key必须为字符串, 而值可以是python所支持的数据类型. shelve模块主要 ...
- python模块:xml.etree.ElementTree
"""Lightweight XML support for Python. XML is an inherently hierarchical data format, ...
- python模块:xml.dom.minidom
"""Simple implementation of the Level 1 DOM. Namespaces and other minor Level 2 featu ...
- python模块之xml.etree.ElementTree
xml.etree.ElementTree用于解析和构建XML文件 <?xml version="1.0"?> <data> <country nam ...
- 7.python模块补充
此文章是对上节文章模块的补充 一,xml模块 xml是实现不同语言或程序之间进行数据交换的协议,可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言.xml的格式如下 ...
- Python(文件、文件夹压缩处理模块,shelve持久化模块,xml处理模块、ConfigParser文档配置模块、hashlib加密模块,subprocess系统交互模块 log模块)
OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目 ...
- python 解析XML python模块xml.dom解析xml实例代码
分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...
随机推荐
- BAT:通过连接符处理判断OR的关系
使用情况说明: 适用于对某个文件夹下不同的文件夹(名称)做不同的处理,但存在需要对其中多个文件夹(名称)进行相同处理的情况 例子中的目录结构: .\1.2.3 -- 文件夹.\a.b.c -- 文件夹 ...
- 2019/3/1 IO流的学习总结
Java学习之IO流 学习Io流之前,我们先了解文件,以及在Java中对文件的操作.首先对文件进行操作,就必须用 File F = new File(“d:\\文件名”); 表示该文件或文件夹的地址寻 ...
- Python成绩雷达图
代码 import numpy as np import matplotlib import matplotlib.pyplot as plt matplotlib.rcParams['font.fa ...
- hive 数值计算函数
Hive数值计算函数 (1)round(45.666,2)作用:四舍五入,保留2位小数 ceil(45.6) 作用:向上取整 floor(45.6) 作用:向下取整 (2)rand() ...
- Android-shape圆形&转圈圈
圆形: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="h ...
- Android-Could not download kotlin-reflect.jar
在AndroidStudio中报以下错误: 错误详情: Could not download kotlin-reflect.jar (org.jetbrains.kotlin:kotlin-refle ...
- Linux 比较判断运算(if else)
200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要是列举在shell命令中常出现的一些用来做比较的运算符,这些运算符是 ...
- [深入学习Web安全](11)之XSS玩法
[深入学习Web安全](11)之XSS玩法 本文转自:i春秋社区 前言这篇paper,我们将学习如何优雅的调戏XSS.我们会教大家一些不常用的,但很实用的XSS姿势.我们在正式进入主题之前,先来说一下 ...
- Android 展示控件之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
一.Surface Surface在SDK的文档中的描述是这样的:Handle onto a raw buffer that is being managed by the screen compos ...
- 《http权威指南》读书笔记12
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...