xml模块

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

双标签的写法:

<tagename '属性名称'="属性值">文本内容</tagname>

单标签的写法:

<tagename 属性名称="属性值"/>

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

  1. 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的更多相关文章

  1. Python模块 shelve xml configparser hashlib

    常用模块1. shelve 一个字典对象模块 自动序列化2.xml 是一个文件格式 写配置文件或数据交换 <a name="hades">123</a>3. ...

  2. python模块:xml

    """Core XML support for Python. This package contains four sub-packages: dom -- The W ...

  3. python模块(shelve,xml,configparser,hashlib,logging)

    1.1shelve模块 shelve 模块比pickle模块简单,只有一个open函数,返回类似字典对象,可读可写:key必须为字符串, 而值可以是python所支持的数据类型. shelve模块主要 ...

  4. python模块:xml.etree.ElementTree

    """Lightweight XML support for Python. XML is an inherently hierarchical data format, ...

  5. python模块:xml.dom.minidom

    """Simple implementation of the Level 1 DOM. Namespaces and other minor Level 2 featu ...

  6. python模块之xml.etree.ElementTree

    xml.etree.ElementTree用于解析和构建XML文件 <?xml version="1.0"?> <data> <country nam ...

  7. 7.python模块补充

    此文章是对上节文章模块的补充 一,xml模块 xml是实现不同语言或程序之间进行数据交换的协议,可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言.xml的格式如下 ...

  8. Python(文件、文件夹压缩处理模块,shelve持久化模块,xml处理模块、ConfigParser文档配置模块、hashlib加密模块,subprocess系统交互模块 log模块)

    OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname")  改变当前脚本工作目 ...

  9. python 解析XML python模块xml.dom解析xml实例代码

    分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...

随机推荐

  1. mysql利用LAST_INSERT_ID实现id生成器

    首先了解 LAST_INSERT_ID LAST_INSERT_ID 有自己的存储空间,能存一个数字 不带参数时返回最近insert的那行记录的自增字段值.带参数时会将自己存储的数字刷成参数给定的值 ...

  2. jQuery-弹幕

    该方法可能有bug,毕竟简单粗暴 <!DOCTYPE html><html> <head> <meta charset="UTF-8"&g ...

  3. day23_雷神_crm-day2

    # 俺滴第一个项目 CRM MdelForm 实现增删改查 1. ModelForm,重写 __init__ 方法,给所有字段添加 form-control 样式. 2. ModelForm,报错错误 ...

  4. 微信支付接口调用H5(C#)

    H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付.主要用于触屏版的手机浏览器请求微信支付的场景.可以方便的从外部浏览器唤 ...

  5. git了解-使用笔记

    1.Git的由来与设计理念 Git是linux之父Linus Torvalds开发的,是一款最先进的项目版本控制系统. Git的由来有一个小故事,传闻起初Linux社区工作者都是通过邮件的,发送给li ...

  6. 201671010147 2017年8月27号 初学java的感想

    在IT行业中,java无疑是最热门的,很多企业也青睐java,因为他的扩展性好,可以处理更多客户的数据,正是因为java有前景所以才吸引更多人去学习.在大一我们已经接触vhleC语言,大二开始就解除了 ...

  7. Reids学习1 -- 初识Redis

    1. Reids和其他类型数据库对比 名称 类型 数据库存储选项 查询类型 附加功能 Redis 使用内存存储的非关系数据库 字符串,列表,集和,散列表,有序集合 每个类型有自己的专属命令,还有批量操 ...

  8. 图片处理类 类库--C#

    调用如下: Bitmap bitmap = new Bitmap("C:\\Users\\Thinkpad\\Desktop\\aa.jpg"); Bitmap[] bit = n ...

  9. 「ZJOI2018」历史(LCT)

    「ZJOI2018」历史(LCT) \(ZJOI\) 也就数据结构可做了-- 题意:给定每个点 \(access\) 次数,使轻重链切换次数最大,带修改. \(30pts:\) 挺好想的.发现切换次数 ...

  10. Microsoft Windows Server 2012 Ad域搭建

    Microsoft Windows Server 2012 Ad域搭建 一.Active Directory概念 AD(活动目录):是一种组织资源信息的方法,目录的意义在于我们可以通过标题或者说搜索条 ...