使用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的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...
随机推荐
- QEMU KVM Libvirt手册(10):Managing Virtual Machines with libvirt
libvirt is a library that provides a common API for managing popular virtualization solutions, among ...
- nova boot from volume代码分析
首先要创建一个bootable volume curl -i http://16.158.166.197:8776/v1/c24c59846a7f44538d958e7548cc74a3/volume ...
- TechEmpower最新一轮的性能测试出炉,ASP.NET Core依旧表现不俗
TechEmpower在10月30发布最新一轮(Round 17)针对“Web Framework Benchmarks”的性能测试报告,ASP.NET Core依旧表现不俗,在一些指标上甚至是碾压其 ...
- 依赖注入[5]: 创建一个简易版的DI框架[下篇]
为了让读者朋友们能够对.NET Core DI框架的实现原理具有一个深刻而认识,我们采用与之类似的设计构架了一个名为Cat的DI框架.在<依赖注入[4]: 创建一个简易版的DI框架[上篇]> ...
- 判断二叉树是否BST
一.问题: 请实现一个函数,检查一棵二叉树是否为二叉查找树.给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树. 二.思路: 解法一:从根节点开始遍历二叉树, ...
- 利用RTL2832u电视棒芯片追踪民航飞机轨迹
我国民航飞机通讯的频率为1090Mhz,而rtl2832u电视棒芯片可以接受的频率范围为24 – 1766 MHz(通过改制Q通道可以接收0-30Mhz的短波)下面开始介绍利用rtl2832u电视棒芯 ...
- PHP 图片base64 互转
<?php /* http://tool.css-js.com/base64.html 透明图片 <img src="data:image/jpg;base64,iVBORw0K ...
- Python开发虚拟环境使用virtualenvwrapper的搭建及pycharm链接步骤
virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包.创建的环境是独立的,互不干扰,无需sudo ...
- [Swift]LeetCode145. 二叉树的后序遍历 | Binary Tree Postorder Traversal
Given a binary tree, return the postorder traversal of its nodes' values. Example: Input: [1,null,2, ...
- [Swift]LeetCode245.最短单词距离 III $ Shortest Word Distance III
This is a follow up of Shortest Word Distance. The only difference is now word1 could be the same as ...