xml模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,

不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。

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

<?xml version="1.0"?>
<data><country name="Liechtenstein"><rank updated="yes">2</rank><year>2008</year><gdppc>141100</gdppc><neighbor name="Austria" direction="E"/><neighbor name="Switzerland" direction="W"/></country><country name="Singapore"><rank updated="yes">5</rank><year>2011</year><gdppc>59900</gdppc><neighbor name="Malaysia" direction="N"/></country><country name="Panama"><rank updated="yes">69</rank><year>2011</year><gdppc>13600</gdppc><neighbor name="Costa Rica" direction="W"/><neighbor name="Colombia" direction="E"/></country>
</data>

xml协议在各个语言里的都 是支持的,在python中可以用以下模块操作xml

遍历

import xml.etree.ElementTree as ETtree = ET.parse("xml test")  # 打开xml文件
root = tree.getroot()  # 得到根节点
# print(dir(root))
print(root.tag)
# 遍历xml文档
for child in root:print('----------',child.tag, child.attrib)  # 打印country节点for i in child:print(i.tag,i.text)

修改和删除xml文档内容

import xml.etree.ElementTree as ETtree = ET.parse("xml_test")
root = tree.getroot() #f.seek(0)# 修改
for node in root.iter('year'):new_year = int(node.text) + 5node.text = str(new_year) # 修改内容node.set("attr_test","false")
tree.write('output.xml') # 写入文件# #删除node
for country in root.findall('country'):rank = int(country.find('rank').text)if rank > 50:root.remove(country)tree.write('output.xml')

新建xml

import xml.etree.ElementTree as ETroot = ET.Element("namelist")  # 创建root

name = ET.SubElement(root,"name",attrib={"enrolled":"yes"})  # 创建child--name
age = ET.SubElement(name,"age",attrib={"checked":"no"}) # 创建name child--age,sex,name
sex = ET.SubElement(name,"sex")
n = ET.SubElement(name,"name")
n.text = "Alex Li"
sex.text = 'male'name2 = ET.SubElement(root,"name",attrib={"enrolled":"no"})
age = ET.SubElement(name2,"age")
age.text = '19'et = ET.ElementTree(root)  # 生成文档对象
et.write("build_out.xml", encoding="utf-8",xml_declaration=True)

 由于原生保存的XML时默认无缩进,如果想要设置缩进的话, 需要修改保存方式

import xml.etree.ElementTree as ET
from xml.dom import minidomdef subElement(root, tag, text):ele = ET.SubElement(root, tag)ele.text = textdef saveXML(root, filename, indent="\t", newl="\n", encoding="utf-8"):rawText = ET.tostring(root)dom = minidom.parseString(rawText)with open(filename, 'w') as f:dom.writexml(f, "", indent, newl, encoding)root = ET.Element("namelist")to = root.makeelement("to", {})
to.text = "peter"
root.append(to)name = ET.SubElement(root,"name",attrib={"enrolled":"yes"})  # 创建child--name
age = ET.SubElement(name,"age",attrib={"checked":"no"}) # 创建name child--age,sex,name
sex = ET.SubElement(name,"sex")
n = ET.SubElement(name,"name")
n.text = "Alex Li"
sex.text = 'male'name2 = ET.SubElement(root,"name",attrib={"enrolled":"no"})
age = ET.SubElement(name2,"age")
age.text = '19'# et = ET.ElementTree(root)  # 生成文档对象# 保存xml文件
saveXML(root, "note.xml")

转载于:https://www.cnblogs.com/xiao-apple36/p/8849484.html

Python模块——xml相关推荐

  1. python模块--json \ pickle \ shelve \ XML模块

    一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...

  2. python解析xml生成代码_python解析xml模块封装代码

    有如下的xml文件: 复制代码 代码如下: 1 2 下面介绍python解析xml文件的几种方法,使用python模块实现. 方式1,python模块实现自动遍历所有节点: 复制代码 代码如下: #! ...

  3. python解析xml文件最好选用的模块_用Python解析XML文件

    本文翻译自:https://developer.yahoo.com/python/python-xml.html 使用Python解析XML文件 许多YDN APIs提供了JSON格式的数据输出,JS ...

  4. python解析xml选用什么模块_python 解析xml需要什么模块

    Python的标准库中,提供了6种可以用于处理XML的包. (1)xml.dom xml.dom实现的是W3C制定的DOM API.如果你习惯于使用DOM API或者有人要求这这样做,可以使用这个包. ...

  5. python解析xml文件最好选用的模块_python高级编程 之解析XML文件模块

    XML是啥?可扩展标记语言(extensible  makeup language),以.xml为后缀的文件. XML文件最大的作用在于存储和传输数据.很多Python的项目就是把产品相关配置参数存储 ...

  6. python:XML处理模块

    python:XML处理模块 简介 XML 漏洞 defusedxml 包 简介 用于处理XML的Python接口分组在 xml 包中. 警告 XML 模块对于错误或恶意构造的数据是不安全的. 如果你 ...

  7. python中xml模块_python学习第十五天-2(XML模块)

    也是一种文本转换形式. import xxxxxxxxxxxxxxxxxxx  as xx,可以用xx代替xxxxxxxxxxxxxxxxxxx模块 xml文件的新增,修改,删除,查询. 新增:​ i ...

  8. Python模块包中__init__.py文件的作用

    2019独角兽企业重金招聘Python工程师标准>>> 在eclipse中用pydev开发Python脚本时,我遇到了一个这样的现象,当我新建一个pydev package时,总会自 ...

  9. 用python将xml文件转换为txt文件_python代码xml转txt实例

    为了训练深度学习模型,经常要整理大量的标注数据,需统一不同格式的标注数据,一般情况下习惯读取TXT格式的数据.但实际中经常遇到XML格式的标注数据,在此举例:1.读取XML标注数据:2.写入TXT文件 ...

  10. python第三方库排行-Python模块汇总(常用第三方库)

    模块 定义 计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里.在python里,一个.py文件就是一个模块 优点: 提高代码的可维护性 ...

最新文章

  1. 在开发流程中嵌入安全测试
  2. [项目实施失败讨论Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)...
  3. 武汉python培训哪一家好一些-一家靠谱的武汉Python培训机构很重要
  4. python培训深圳-深圳python 培训班多少钱?[Python培训]
  5. JZOJ 5473. 【NOIP2017提高组正式赛】小凯的疑惑
  6. Java入门需掌握的30个基本概念[转]
  7. Java中文编码转换与字节长度判断
  8. Xcode pch文件配置及object c 单例创建
  9. mysql 5.0创建函数_MySQL5.0中的Function和Procedure
  10. 6. 卷2(进程间通信)---System V 消息队列
  11. python smtplib发送邮件可直接运行代码
  12. 代码:Java实现大数据经典案例WordCount
  13. 英雄联盟查服务器角色信息,LOL英雄联盟角色信息查询
  14. Linux系统下安装Chrome浏览器
  15. Your cache folder contains root-owned files, due to a bug in npm ERR! previous versions of npm which
  16. 使用Qt实现一个必应壁纸客户端
  17. CVE-2017-8570微软office漏洞复现与研究
  18. 物联网卡无法激活使用的原因
  19. 【拓扑排序+dp】Hzy's Rabbit Candy
  20. 防火墙一个系统加固的例子

热门文章

  1. python调整照片
  2. FISCO BCOS源码(4)第三方依赖和模块
  3. slam 图像处理 matlab,MATLAB R2020a图像处理和计算机视觉新进展
  4. Linux中yum使用教程,linux中关于yum使用
  5. 模板引擎thymeleaf和freemarker
  6. php 环境 手动,手动搭建php环境(win系统)
  7. vue项目基本环境的配置与初始化
  8. Collections 常用方法
  9. IDEA 日常小技巧
  10. java.awt Robot 自动化测试 与 KeyEvent 常用按键