导入模块:

  1. import xml.etree.ElementTree as ET

创建xml文件:

  1. new_xml = ET.Element("namelist") # 创建根节点
  2.  
  3. userinfo = ET.SubElement(new_xml, "userinfo", attrib={"enrolled": "yes"}) # 给new_xml创建子节点,userinfo:节点名,attrib:属性及值
  4. name = ET.SubElement(userinfo, "name") # 给userinfo创建子节点,name:节点名
  5. name.text = 'name1'
  6. age = ET.SubElement(userinfo, "age", attrib={"checked": "no"}) # 给userinfo创建子节点,age:节点名,attrib:属性及值
  7. age.text = '23' # 给age节点添加节点内容
  8. sex = ET.SubElement(userinfo, "sex") # 给userinfo创建子节点,sex:节点名
  9. sex.text = '男'
  10.  
  11. userinfo2 = ET.SubElement(new_xml, "userinfo", attrib={"enrolled": "no"}) # 给new_xml创建子节点,userinfo:节点名,attrib:属性及值
  12. name = ET.SubElement(userinfo2, "name") # 给userinfo2创建子节点,name:节点名
  13. name.text = 'name2'
  14. age = ET.SubElement(userinfo2, "age") # 给userinfo2创建子节点,age:节点名
  15. age.text = '24' # 给age节点添加节点内容
  16. sex = ET.SubElement(userinfo2, "sex") # 给userinfo创建子节点,sex:节点名
  17. sex.text = '女'
  18.  
  19. userinfo3 = ET.SubElement(new_xml, "userinfo", attrib={"enrolled": "yes"}) # 给new_xml创建子节点,userinfo:节点名,attrib:属性及值
  20. name = ET.SubElement(userinfo3, "name") # 给userinfo3创建子节点,name:节点名
  21. name.text = 'name3'
  22. age = ET.SubElement(userinfo3, "age") # 给userinfo3创建子节点,age:节点名
  23. age.text = '26' # 给age节点添加节点内容
  24.  
  25. et = ET.ElementTree(new_xml) # 生成文档对象
  26. et.write("xmltest.xml", encoding="utf-8", xml_declaration=True) # 写入xmltest.xml文件,xml_declaration指定为xml格式,文件头:<?xml version='1.0' encoding='utf-8'?>
  27.  
  28. ET.dump(new_xml) # 打印生成的格式

执行结果:

读取xml文件:

  1. tree = ET.parse('xmltest.xml') # 打开xml文件
  2. root = tree.getroot() # 获取根节点
  3. # root.tag 获取根节点标签
  4. print(root.tag) # 获取根节点标签 # namelist
  5.  
  6. # 遍历xml文档
  7. # text 获取标签内容
  8. # attrib 获取标签属性值
  9. for child in root:
  10. print(child.tag, child.attrib) # 获取标签名及属性值
  11. for i in child:
  12. print(i.tag, i.text) # 获取标签名及标签内容
  13.  
  14. # 遍历指定节点(name)
  15. for node in root.iter('name'):
  16. print(node.tag, node.text)

执行结果:

修改xml内容:

  1. tree = ET.parse("xmltest.xml") # 打开xml文件
  2. root = tree.getroot() # 获取根节点
  3.  
  4. # 修改,所有age值加1
  5. for node in root.iter('age'):
  6. new_rank = int(node.text) + 1
  7. node.text = str(new_rank) # 修改age节点的内容
  8. node.set("sexvalue", "M/W") # 给sex节点添加属性
  9.  
  10. tree.write("xmltest.xml")

执行结果:

删除xml节点:

  1. tree = ET.parse('xmltest.xml') # 打开xml文件
  2. root = tree.getroot() # 获取根节点
  3. # root.tag 获取根节点标签
  4.  
  5. for userinfo in root.findall('userinfo'): # root.findall 找到所有的 userinfo 节点
  6. rank = int(userinfo.find('age').text) # 获取age的值
  7. if rank > 25:
  8. root.remove(userinfo) # 删除age>25的userinfo节点
  9.  
  10. tree.write('output.xml') # 删除之后的内容写入output.xml中,也可写入源文件 tree.write('xmltest.xml')

执行结果:

初识python: xml 操作的更多相关文章

  1. 【转】python XML 操作总结(创建、保存和删除,支持utf-8和gb2312)

    原文地址:http://hi.baidu.com/tbjmnvbagkfgike/item/6743ab10af43bb24f6625cc5 最近写程序需要用到xml操作,看了看python.org上 ...

  2. Python XML操作

    XML(可扩展性标记语言)是一种非常常用的文件类型,主要用于存储和传输数据.在编程中,对XML的操作也非常常见. 本文根据python库文档中的xml.etree.ElementTree类来进行介绍X ...

  3. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  4. python - XML文件及其操作

    xml文件也是实现不同语言或者程序之间进行数据交换的协议,它的特点是尖括号开头,尖括号结尾.使用范围就更为广泛了,tomcat resin kvm 等等,使用了大量的xml文件来进行相关配置.先来看一 ...

  5. 篇2 安卓app自动化测试-初识python调用appium

    篇2              安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...

  6. Python XML解析(转载)

    Python XML解析 什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). 你可以通过本站学习XML教程 XML 被设计用来传输和存储数据. XML是 ...

  7. python学习之路-1 python基础操作

    本篇所涉及的内容 变量 常量 字符编码 用户交互input 格式化字符串 python的缩进规则 注释 初始模块 条件判断 循环 变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中 ...

  8. Python xml 模块

    Python xml 模块 TOC 什么是xml? xml和json的区别 xml现今的应用 xml的解析方式 xml.etree.ElementTree SAX(xml.parsers.expat) ...

  9. Python XML解析之ElementTree

    参考网址: http://www.runoob.com/python/python-xml.html https://docs.python.org/2/library/xml.etree.eleme ...

  10. python大法好——Python XML解析

    Python XML解析 什么是XML? XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识. 它也是元标记语言,即定义了用于定义其他与 ...

随机推荐

  1. maven 是什么?

    在了解maven的概念之前,我一直都在项目中使用maven,但是对于maven的了解,只能说连个皮毛都算不上,一直到项目中,自己机械化的deploy项目的时候,发现报错,赶紧报告开发组长,这私服是不是 ...

  2. Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录

    背景 :在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnectio ...

  3. 6.Vue.js-条件与循环

    条件判断 v-if 条件判断使用 v-if 指令: <div id="app"> <p v-if="seen">现在你看到我了</ ...

  4. 【Python】数据处理分析,一些问题记录

    不用造轮子是真的好用啊 python中单引号双引号的区别 和cpp不一样,cpp单引号表示字符,双引号表示字符串,'c'就直接是ascii值了 Python中单引号和双引号都可以用来表示一个字符串 单 ...

  5. IDE常用插件

    IDE 常用插件集合 :

  6. RDS备份到OSS增量+全量

    一.前言 阿里云的RDS备份是占用使用量的,你购买200G那备份使用量是100G左右,导致备份一般也就存半个月,2个全备份. 那半个月后之前的也就删除了,如果要持续保留更久将花费不少的金钱.所以这里用 ...

  7. Nginx模块之stub_status

    目录 一.介绍 二.使用 三.参数 一.介绍 Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 当前默认在nginx的源码文件中,不需要单独下载 二.使用 本模块默认是不 ...

  8. Nginx模块之nginx_upstream_check_module

    目录 一.介绍 二.使用 三.参数 一.介绍 大家都知道,前端nginx做反代,如果后端服务器宕掉的话,nginx是不能把这台realserver剔除upstream的,所以还会有请求转发到后端的这台 ...

  9. Windows 10 彻底关闭 Antimalware Service Executable 降低内存占用

    概述 最近给内网的一台电脑安装 Windows 10 专业版系统,由于此电脑不会涉及到不安全因素,所以杀毒软件非必须. 以最大限度节省系统资源考虑,默认安装的 Micoroft Defender 占用 ...

  10. oracle11gR2、client及plsql完整安装与配置

    本文主要介绍Oracle11g,client及PLSQL的安装过程 一,oracle安装 安装环境:虚拟机win7 64 1.点击目录中 setup.exe文件 2.配置安全更新中,取消通过my or ...