使用python操作XML增删改查
使用python操作XML增删改查
什么是XML?
- XML 指可扩展标记语言(EXtensible Markup Language)
- XML 是一种标记语言,很类似 HTML
- XML 的设计宗旨是传输数据,而非显示数据
- XML 标签没有被预定义。您需要自行定义标签。
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准
参考文献
导入模块
import xml.etree.ElementTree as ET
读取解析XML
可以从xml文件、字符串中解析
新建一个xml文件
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student>
<name>张三</name>
<age>18</age>
<score>89</score>
</student>
<student>
<name>李四</name>
<age>19</age>
<score>81</score>
</student>
<student>
<name>王五</name>
<age>17</age>
<score>92</score>
</student>
</students>
从xml文件中读取,使用getroot()获取根节点,得到的是一个Element对象
tree = ET.parse('students.xml')
root = tree.getroot()
从字符串变量中读取,返回的是Element对象
root = ET.fromstring(country_data_as_string)
访问XML
每个Element都有以下属性
#tag = element.text #访问Element标签
#attrib = element.attrib #访问Element属性
#text = element.text #访问Element文本
for element in root.findall('student'):
tag = element.tag #访问Element标签
attrib = element.attrib #访问Element属性
text = element.find('name').text #访问Element文本
print(tag, attrib, text)
print(root[0][0].text) #子节点是嵌套的,我们可以通关索引访问特定的子节点
查找元素
Element 提供了一些方法来帮助我们对他的子节点进行遍历
1、Element.iter()
for student in root.iter('student'):
print student[0].text
out:
张三
李四
王五
2、Element.findall()
for element in root.findall('student'):
name = element.find('name').text
age = element.find('age').text
score = element.find('score').text
print name,age,score
out:
张三 18 89
李四 19 81
王五 17 92
修改XML
- ElementTree.write()将构建的XML文档写入文件。
- Element.text = '' 直接改变字段内容
- Element.append(Element) 为当前的Elment对象添加子对象
- Element.remove(Element) 删除Element节点
- Element.set(key, value) 添加和修改属性
- ElementTree.write('filename.xml') 写出(更新)XMl文件
创建XML
- ElementTree.Element() 构建一个节点
- ElementTree.SubElement(Element,tag) 构建一个子节点
a = ET.Element('a')
b = ET.SubElement(a, 'b')
c = ET.SubElement(a, 'c')
print ET.dump(a)
out:
<a><b /><c /></a>
总结
最近写东西需要都输出xml,所以学习了XML以及XML在python的使用。更多内容可以看官方文档。
使用python操作XML增删改查的更多相关文章
- 洗礼灵魂,修炼python(91)-- 知识拾遗篇 —— pymysql模块之python操作mysql增删改查
首先你得学会基本的mysql操作语句:mysql学习 其次,python要想操作mysql,靠python的内置模块是不行的,而如果通过os模块调用cmd命令虽然原理上是可以的,但是还是不太方便,那么 ...
- Linq To Xml操作XML增删改查
对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO Xml对XML进行操作,主要讲解对XML的创建.加载.增加.查询.修改以及删除:重点在于类XD ...
- 4.Linq To Xml操作XML增删改查
转自https://www.cnblogs.com/wujy/p/3366812.html 对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO X ...
- c#操作xml增删改查
1.首先新建一个xml文件(Root是我写上的) 2. 3.直接上代码,更直观 (1)初始化xml /// <summary> /// 初始化xml /// </summary> ...
- Python列表的增删改查排嵌套特殊输出格式
Python列表的增删改查排嵌套特殊输出格式 一.列表的样子: a = ['q' , 'w' , 'e ', 'r','t'] a为列表名,[ ]为列表内容,' '为列表内的元素,'q'为a[0] 二 ...
- js操作indexedDB增删改查示例
js操作indexedDB增删改查示例 if ('indexedDB' in window) { // 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本 var r ...
- MySQL数据分析(16)— 数据操作之增删改查
前面我们说学习MySQL要从三个层面,四大逻辑来学,三个层面就是库层面,表层面和数据层面对吧,数据库里放数据表,表里放数据是吧,大家可以回忆PPT中jacky的这图,我们已经学完了库层面和表层面,从本 ...
- Redis简单的数据操作(增删改查)
#Redis简单的数据操作(增删改查): 字符串类型 string 1. 存储: set key value 127.0.0.1:6379> set username zhangsan OK 2 ...
- [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...
随机推荐
- Go语言反射reflect
目录 通过反射获取类型信息 理解反射的类型(Type)与种类(Kind) reflect.Elem() - 通过反射获取指针指向的元素类型 通过反射获取结构体的成员类型 通过反射获取值信息 使用反射值 ...
- JDK 8 之 Stream sorted() 示例
原文链接:http://www.concretepage.com/java/jdk-8/java-8-stream-sorted-example 国外对Java8一系列总结的不错, 翻译过来给大家共享 ...
- 微信小程序快速开发上手
微信小程序快速开发上手 介绍: 从实战开发角度,完整系统地介绍了小程序的开发环境.小程序的结构.小程序的组件与小程序的API,并提供了多个开发实例帮助读者快速掌握小程序的开发技能,并能自己动手开发出小 ...
- shell 删除重复文件脚本
摘自 <Linux Shell脚本攻略>一书,例子在109页,原理在110页,原理讲解的很好哦! 需要了解awk命令.xargs,脚本中所用的命令在Linux Shell脚本攻略一书中都有 ...
- MyEclipse设置编码格式
1.设置项目编码格式,右键项目,Properties 选择第一个 2.设置软件编码格式,windows---->Preferences打开"首选项"对话框
- 6.jQuery(实例)
1.开关灯效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 一个.NET Core开发者的Linux入门学习笔记
用.NET Core开发也有一段时间了,但是由于工作原因一直都是在Windows系统上进行的开发,一直想学习Linux然后把.NET Core开发的程序跑在Linux上,然后把心得体会记录一下发布再博 ...
- docker 常用命令记录
下载镜像 docker pull imagesName 查看所有镜像 docker images 查看当前运行的镜像 docker ps 运行镜像 docker run imagesName 停止运行 ...
- xtrabackup备份
增量备份: xtrabackup --backup --target-dir=/data/backup/base --datadir=/var/lib/mysql xtrabackup --backu ...
- Javascript的原型继承,说清楚
一直以来对Javascript的原型.原型链.继承等东西都只是会用和了解,但没有深入去理解这门语言关于继承这方面的本质和特点.闲暇之余做的理解和总结,欢迎各位朋友一起讨论. 本文本主要从两段代码的区别 ...