XML模块增删改查基本操作

Posted jackfree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

 



以上是关于XML模块增删改查基本操作的主要内容,如果未能解决你的问题,请参考以下文章

Linq to XML 增删改查

Linq To Xml操作XML增删改查

XML基本概念及增删改查操作

Maven+Mybatis实现数据库增删改查

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

jqgrid怎么实现增删改查