初识python: xml 操作
导入模块:
- import xml.etree.ElementTree as ET
创建xml文件:
- new_xml = ET.Element("namelist") # 创建根节点
- userinfo = ET.SubElement(new_xml, "userinfo", attrib={"enrolled": "yes"}) # 给new_xml创建子节点,userinfo:节点名,attrib:属性及值
- name = ET.SubElement(userinfo, "name") # 给userinfo创建子节点,name:节点名
- name.text = 'name1'
- age = ET.SubElement(userinfo, "age", attrib={"checked": "no"}) # 给userinfo创建子节点,age:节点名,attrib:属性及值
- age.text = '23' # 给age节点添加节点内容
- sex = ET.SubElement(userinfo, "sex") # 给userinfo创建子节点,sex:节点名
- sex.text = '男'
- userinfo2 = ET.SubElement(new_xml, "userinfo", attrib={"enrolled": "no"}) # 给new_xml创建子节点,userinfo:节点名,attrib:属性及值
- name = ET.SubElement(userinfo2, "name") # 给userinfo2创建子节点,name:节点名
- name.text = 'name2'
- age = ET.SubElement(userinfo2, "age") # 给userinfo2创建子节点,age:节点名
- age.text = '24' # 给age节点添加节点内容
- sex = ET.SubElement(userinfo2, "sex") # 给userinfo创建子节点,sex:节点名
- sex.text = '女'
- userinfo3 = ET.SubElement(new_xml, "userinfo", attrib={"enrolled": "yes"}) # 给new_xml创建子节点,userinfo:节点名,attrib:属性及值
- name = ET.SubElement(userinfo3, "name") # 给userinfo3创建子节点,name:节点名
- name.text = 'name3'
- age = ET.SubElement(userinfo3, "age") # 给userinfo3创建子节点,age:节点名
- age.text = '26' # 给age节点添加节点内容
- et = ET.ElementTree(new_xml) # 生成文档对象
- et.write("xmltest.xml", encoding="utf-8", xml_declaration=True) # 写入xmltest.xml文件,xml_declaration指定为xml格式,文件头:<?xml version='1.0' encoding='utf-8'?>
- ET.dump(new_xml) # 打印生成的格式
执行结果:
读取xml文件:
- tree = ET.parse('xmltest.xml') # 打开xml文件
- root = tree.getroot() # 获取根节点
- # root.tag 获取根节点标签
- print(root.tag) # 获取根节点标签 # namelist
- # 遍历xml文档
- # text 获取标签内容
- # attrib 获取标签属性值
- for child in root:
- print(child.tag, child.attrib) # 获取标签名及属性值
- for i in child:
- print(i.tag, i.text) # 获取标签名及标签内容
- # 遍历指定节点(name)
- for node in root.iter('name'):
- print(node.tag, node.text)
执行结果:
修改xml内容:
- tree = ET.parse("xmltest.xml") # 打开xml文件
- root = tree.getroot() # 获取根节点
- # 修改,所有age值加1
- for node in root.iter('age'):
- new_rank = int(node.text) + 1
- node.text = str(new_rank) # 修改age节点的内容
- node.set("sexvalue", "M/W") # 给sex节点添加属性
- tree.write("xmltest.xml")
执行结果:
删除xml节点:
- tree = ET.parse('xmltest.xml') # 打开xml文件
- root = tree.getroot() # 获取根节点
- # root.tag 获取根节点标签
- for userinfo in root.findall('userinfo'): # root.findall 找到所有的 userinfo 节点
- rank = int(userinfo.find('age').text) # 获取age的值
- if rank > 25:
- root.remove(userinfo) # 删除age>25的userinfo节点
- tree.write('output.xml') # 删除之后的内容写入output.xml中,也可写入源文件 tree.write('xmltest.xml')
执行结果:
初识python: xml 操作的更多相关文章
- 【转】python XML 操作总结(创建、保存和删除,支持utf-8和gb2312)
原文地址:http://hi.baidu.com/tbjmnvbagkfgike/item/6743ab10af43bb24f6625cc5 最近写程序需要用到xml操作,看了看python.org上 ...
- Python XML操作
XML(可扩展性标记语言)是一种非常常用的文件类型,主要用于存储和传输数据.在编程中,对XML的操作也非常常见. 本文根据python库文档中的xml.etree.ElementTree类来进行介绍X ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- python - XML文件及其操作
xml文件也是实现不同语言或者程序之间进行数据交换的协议,它的特点是尖括号开头,尖括号结尾.使用范围就更为广泛了,tomcat resin kvm 等等,使用了大量的xml文件来进行相关配置.先来看一 ...
- 篇2 安卓app自动化测试-初识python调用appium
篇2 安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...
- Python XML解析(转载)
Python XML解析 什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). 你可以通过本站学习XML教程 XML 被设计用来传输和存储数据. XML是 ...
- python学习之路-1 python基础操作
本篇所涉及的内容 变量 常量 字符编码 用户交互input 格式化字符串 python的缩进规则 注释 初始模块 条件判断 循环 变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中 ...
- Python xml 模块
Python xml 模块 TOC 什么是xml? xml和json的区别 xml现今的应用 xml的解析方式 xml.etree.ElementTree SAX(xml.parsers.expat) ...
- Python XML解析之ElementTree
参考网址: http://www.runoob.com/python/python-xml.html https://docs.python.org/2/library/xml.etree.eleme ...
- python大法好——Python XML解析
Python XML解析 什么是XML? XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识. 它也是元标记语言,即定义了用于定义其他与 ...
随机推荐
- maven 是什么?
在了解maven的概念之前,我一直都在项目中使用maven,但是对于maven的了解,只能说连个皮毛都算不上,一直到项目中,自己机械化的deploy项目的时候,发现报错,赶紧报告开发组长,这私服是不是 ...
- Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录
背景 :在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnectio ...
- 6.Vue.js-条件与循环
条件判断 v-if 条件判断使用 v-if 指令: <div id="app"> <p v-if="seen">现在你看到我了</ ...
- 【Python】数据处理分析,一些问题记录
不用造轮子是真的好用啊 python中单引号双引号的区别 和cpp不一样,cpp单引号表示字符,双引号表示字符串,'c'就直接是ascii值了 Python中单引号和双引号都可以用来表示一个字符串 单 ...
- IDE常用插件
IDE 常用插件集合 :
- RDS备份到OSS增量+全量
一.前言 阿里云的RDS备份是占用使用量的,你购买200G那备份使用量是100G左右,导致备份一般也就存半个月,2个全备份. 那半个月后之前的也就删除了,如果要持续保留更久将花费不少的金钱.所以这里用 ...
- Nginx模块之stub_status
目录 一.介绍 二.使用 三.参数 一.介绍 Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 当前默认在nginx的源码文件中,不需要单独下载 二.使用 本模块默认是不 ...
- Nginx模块之nginx_upstream_check_module
目录 一.介绍 二.使用 三.参数 一.介绍 大家都知道,前端nginx做反代,如果后端服务器宕掉的话,nginx是不能把这台realserver剔除upstream的,所以还会有请求转发到后端的这台 ...
- Windows 10 彻底关闭 Antimalware Service Executable 降低内存占用
概述 最近给内网的一台电脑安装 Windows 10 专业版系统,由于此电脑不会涉及到不安全因素,所以杀毒软件非必须. 以最大限度节省系统资源考虑,默认安装的 Micoroft Defender 占用 ...
- oracle11gR2、client及plsql完整安装与配置
本文主要介绍Oracle11g,client及PLSQL的安装过程 一,oracle安装 安装环境:虚拟机win7 64 1.点击目录中 setup.exe文件 2.配置安全更新中,取消通过my or ...