XML模块增删改查基本操作

增:新建一个xml文件,把数据写进去

# 怎么生成一个xml文件?
# 1,导入模块
import xml.etree.ElementTree as et

# 2, 定义节点
root = et.Element(‘namelist‘)

# 3,定义节点下相应的值和属性
name = et.SubElement(root,‘name‘,attrib={‘enroll‘:‘yes‘})  # 问题:attrib是什么,设置了有什么用?
age = et.SubElement(root,‘age‘,attrib={‘check‘:‘no‘})
sex = et.SubElement(name,‘sex‘)
n = et.SubElement(name,‘name‘)

# 4,给定义的节点和值 赋值元素
name.text = ‘jack‘
age.text = ‘18‘
sex.text = ‘male‘
n.text = ‘sexname‘

# 5, 把上面写的节点和值赋给doc,生成文档对象
doc = et.ElementTree(root)

# 6, 把生成的文档写入文件
doc.write(‘xmldoc.xml‘,encoding=‘UTF-8‘,xml_declaration=True)

# 7, 打印生成格式
et.dump(doc)

改:

# 修改xml的内容
# 1,拿到文件内容,赋值给root
tree = et.parse(‘xml test.xml‘) # 载入硬盘数据
root = tree.getroot()   # 获取节点

# 2,对至或者元素修改
for i in root.iter(‘year‘): # iter把year至找出来
    new_year = int(i.text) + 1  # i.text找出对应元素,赋给变量
    i.text = str(new_year)  # 把变量值写回去
    i.set(‘updated‘,‘yes‘)  # 设置属性i.set()

# 3, 修改后的内容tree写回文件
tree.write(‘E:xml test.xml‘)

删:

 删除xml的内容
#  1, root.remove(n)删除
for country in root.findall(‘country‘):  # 找到country节点
    rank = int(country.find(‘rank‘).text)  # 把拿到country节点的值
    if rank > 50:   # 条件判断
        root.remove(country)    # 删除节点
# 2, 写回文件
tree.write(‘output.xml‘)

查:

# 查询怎么操作?
# 1,导入模块
import xml.etree.ElementTree as ET

# 2.把xml文件打开
xml = ET.parse(‘xml test‘)  # parse的作用是什么? 把载入硬盘数据

# 3,把文件里的数据读取并付给一个变量,以便进行查询操作
root = xml.getroot()  # getroot()作用是什么? 获取根节点和数据

# 4, 循环root,打印节点i.tag
for i in root:
    print(i.tag)
# 5, 打印节点的值i.attrib
    print(i.attrib)
# 6, 打印节点的值里对应的元素---用先循环root,再循环一次到里面的层,拿到.text的值
for i in root:
    print(‘------------i.tag‘)
    for j in i:
        print(j.text)

原文地址:https://www.cnblogs.com/jackfree/p/9715467.html

时间: 2024-10-09 11:59:36

XML模块增删改查基本操作的相关文章

flex 操作xml 实现增删改查 .

一 在介绍Flex中操作XML之前,首先简单介绍下XML中的基本术语. 元素:XML中拥有开始标签和结束标签的这一块称为“元素”    节点:把XML元素与文本结合起来统称为节点    根节点:位于整个XML文当顶端的节点    文本节点:包含文本的节点    属性:元素的组成部分,以键/值形式放在元素标签内 用一个例子来说明 view plaincopy to clipboardprint?<root_node><!--这是一个根节点也是一个元素-->            &l

xml解析——增删改查操作后将其修改结果保存

一.可扩展标记语言xml:Extensible Markup Language    1.XML的作用:1)统一数据传输的格式.2)做小型数据库[文件型数据库].3)做配置文件  .ini   .propertity  .xml  .cfg    2.XML文件的基本格式:      标签:分为双标签和单标签,双标签的开头和结尾标签名必须一致,大小写一样,/ 开头的是结尾标签,单标签必须在 > 前加上 / 来结尾,单标签中不能放文本.      属性:在开始标签中定义一些名值对,值一定是字符串 

【Android基础篇】SQLite数据库的增删改查基本操作

一.概述 SQLite是Android系统的核心数据存储服务之一,它是一个轻型的嵌入式数据库,占用非常少的资源却能提供很好很快的数据存取服务,许多大型的需要数据存储的Android项目都有用到SQLite(也可以用于桌面应用程序). 下面介绍一下SQLite的创建数据库.表的操作,以及基本的增删改查操作. 二.基本操作API简介 在Android中,SQLiteDatabase类提供了SQLite的底层API,但在使用SQLite数据库时,我们往往不会直接操作SQLiteDatabase这个类,

java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = DocumentHelper.parseText(xmlStr); // XML转字符串 Document document = ...; String text = document.asXML(); //这里的XML DOCUMENT为org.dom4j.Document 二.读取XML文档节点: pack

Dom4J实现XML文件增删改查

1:XML语法规则(只写重要的几点)   XML标签对大小写敏感   XML文档必须有根元素          XML的属性值要加“”          XML中空格会被保留 2:首先呢使用Dom4J必须先使用jar包<dom4j-2.1.1.jar> 3:包导好之后我们开始步入正题,先去创建一个XML文件(info_xml文件名) 4:开始查询XML文件里的节点 5:添加节点 6:修改节点 7:删除节点 关于Dom4J实现XML增删改查文件就到这里了,这也是我第一次发博客,有什么不足我下次发

MySQL 基础知识 增删改查基本操作

增删改查=CRUD 增 insertINSERT car VALUES('字符','name','brand','1990-02-02 00:00:00') 添加一条 INSERT car (`code`,`name`)VALUES('1','2') 单独添加 删除 DELETE 不常用DELETE FROM car 删除表的所有信息DELETE FROM car WHERE `Code`='字符' AND `Name`='name'DELETE FROM car WHERE `Code`='字

mybatis中的xml方式增删改查

实体类 package cn.liwen.entity; public class User { private long id; //主键 private String username;//用户名 private String password;//密码 public long getId() { return id; } public void setId(long id) { this.id = id; } public String getUsername() { return use

搭建MyBatis工作环境以及增删改查基本操作

数据库准备 创建一个数据库为mybatus-test,表为user CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; insert into `user`(

【MongoDB】增删改查基本操作

查看所有数据库 show dbs 切换数据库(若不存在,会自动创建) use databasename 删除当前数据库 db.dropDatabase() MongoDB中没有表,只有集合. 插入集合 db.集合名.insert(json) 例如 db.connection.insert({x:1}) for循环插入(js的语法) for (i=3;i<100;i++) db.函数名.insert({x:i}) 查看所有集合 show collections 查看所有数据 db.集合名.find