python模块详解 XML
XML模块
XML是实现不同语言或程序之间进行数据交换的协议,和json一样。
XML格式:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
读XML
简单读取XML内容:
import xml.etree.ElementTree as ET
tree = ET.parse('xml_test.xml')
root = tree.getroot()
print(root) #XML对象
print(root.tag) #XML最外层标签
遍历XML:
import xml.etree.ElementTree as ET
tree = ET.parse('xml_test.xml')
root = tree.getroot() for child in root:
print(child.tag,child.attrib) #to {'name': 'to'} 遍历标签、属性
for i in child:
print(i.tag,i.text) #content Jim 遍历标签、文本
break
break
只遍历某一个标签:
for node in root.iter('content'):
print(node.tag,node.text) #content Jim #content Jani #content Reminder #content Don't forget me this weekend!
修改XML
for node in root.iter('content'):
content = node.text #获取内容
new_content = str('new_content_'+content)
node.text = new_content #修改内容
node.set('update','yes') #添加属性
tree.write('xml_test.xml') #保存到原文件则覆盖之前内容,保存到新文件则新建
删除XML
for node in root.findall('to'): #找到to这个标签
content = len(node.find('content').text) #继续找到content的标签,并且计算content内容长度
if content > 2:
root.remove(node) #移除这个标签
tree.write('xml_test3.xml') # 将结果重新写到文件
创建XML
import xml.etree.ElementTree as ET
new_xml = ET.Element("name_list") #创建节点
personinfo = ET.SubElement(new_xml,"personinfo",attrib={"enrolled":"yes"}) #创建子节点、子节点名称、属性
age = ET.SubElement(personinfo,'age',attrib={"checked":"no"})
age.text = '33' #添加子节点文本内容
name = ET.SubElement(personinfo,"name")
name.text = 'jim' personinfo2 = ET.SubElement(new_xml,"personinfo",attrib={"enrolled":"no"})
age = ET.SubElement(personinfo2,'age')
age.text = '20'
name = ET.SubElement(personinfo2,'name')
name.text = 'Lily' et =ET.ElementTree(new_xml) #生成文档对象
et.write('xml_test5.xml',encoding='utf-8',xml_declaration=True) #生成xml文件并指定字符集和
ET.dump(new_xml) #打印生成格式
创建后的结果:
<?xml version='1.0' encoding='utf-8'?>
<name_list>
<personinfo enrolled="yes">
<age checked="no">33</age>
<name>jim</name>
</personinfo>
<personinfo enrolled="no">
<age>20</age>
<name>Lily</name>
</personinfo>
</name_list>
python模块详解 XML的更多相关文章
- python模块详解 | selenium(持续更新中)
目录: 关于selenium Selenium 安装Selenium 安装浏览器驱动 配置环境变量 selenium方法详解 定位元素 元素操作 浏览器操作 鼠标事件 浏览器事件 设置元素等待 多表单 ...
- python模块详解 random os
random模块 常用方法 random.random() 随机产生一个小于1的浮点数 import random print(random.random()) #0.4153761818276826 ...
- python模块详解
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.p ...
- python模块详解 sys shutil
sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sy ...
- python模块详解 | shutil
简介: shutil是python的一个内置模块,提供了许多关于文件和文件集合的高级操作,特别提供文件夹与文件操作.归档操作了支持文件复制和删除的功能. 文件夹与文件操作: copyfileobj(f ...
- 小白的Python之路 day5 python模块详解及import本质
一.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能) 本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test) 包:用来从逻辑上组织模块 ...
- Python 模块详解及import本质
同在当前目录下的模块和包导入 模块定义 本质就是.py结尾的python文件. 用来从逻辑上组织python代码(变量,函数,类,逻辑) 文件名: test.py; 对应的模块名 : test 模块 ...
- Python模块详解以及import本质,获得文件当前路径os.path.abspath,获得文件的父目录os.path.dirname,放到系统变量的第一位sys.path.insert(0,x)
模块介绍 1.定义: 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test) 包:用来从逻 ...
- python模块详解 logging
打印日志的五个级别: import logging logging.debug('test debug') logging.info('test info') logging.warning('tes ...
随机推荐
- 安装 zookeeper
https://www.w3cschool.cn/zookeeper/zookeeper_cli.html ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个 ...
- excle导出使用poi
package com.ittax.core.util; import java.util.List; import javax.servlet.ServletOutputStream; import ...
- Jira的安装使用
1.什么是JIRA JIRA是目前比较流行的基于Java架构的管理系统,由于Atlassian公司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一 ...
- fsockopen函数被禁用的解决方法
判断fsockopen 是否可用:function_exists('fsockopen');如果没有开启 一.开启fsockopen函数 修改php.ini,将 disable_functions = ...
- codeforces-984D——XOR-pyramid(DP)
题目传送门 题目描述:给你一个f函数,这个函数的自变量是一个数列,函数表达式就是题目所给的描述,然后给你一个数列,问你数列中某区间 怎么选取 可以使函数值最大. 题目思路: 有关区间选取的问题,很 ...
- Go语言基础之12--Channel
一.不同goroutine之间如何进行通讯? 1.全局变量和锁同步 缺点:多个goroutine要通信时,定义太多的全局变量(每个全局变量功能不一样),不好维护 2.Channel 二.channel ...
- Linux进程控制理论及几种常见进程间通信机制
1. Linux进程控制理论 ① 进程是一个具有一定独立功能的程序的一次运行活动(动态性.并发性.独立性.异步性). 进程的四要素: (1)有一段程序供其执行(不一定是一个进程所专有的),就像一场戏必 ...
- kohana reading session data error(session_start)引起的错误
在项目中碰到一个很奇怪的问题,同一个网站目录下两个项目,手机端访问从A项目切换到B项目,总是报错,session_start抛错,后来排查了很久,终于发现是存储session的时候直接存储的对象,导致 ...
- 关于在JS中设置标签属性
Attribute 该属性主要是用来在标签行内样式,添加.删除.获取属性.且适用于自定义属性. setAttribute("属性名",属性值“”):这个是用来设置标签属性的: re ...
- linux下pid命令
ps aux | grep tomcat| awk '{if(NR==1)print $2}' Linux:批量修改分隔符(awk.BEGIN.FS.OFS.print.tr命令) 批量修改文件的分 ...