首页 > 编程语言 > 详细

初识python: xml 操作

时间:2019-08-22 20:36:22      阅读:82      评论:0      收藏:0      [点我收藏+]

导入模块:

import xml.etree.ElementTree as ET

创建xml文件:

new_xml = ET.Element("namelist")  # 创建根节点

userinfo = ET.SubElement(new_xml, "userinfo", attrib={"enrolled": "yes"})  # 给new_xml创建子节点,userinfo:节点名,attrib:属性及值
name = ET.SubElement(userinfo, "name")  # 给userinfo创建子节点,name:节点名
name.text = name1
age = ET.SubElement(userinfo, "age", attrib={"checked": "no"})  # 给userinfo创建子节点,age:节点名,attrib:属性及值
age.text = 23   # 给age节点添加节点内容
sex = ET.SubElement(userinfo, "sex")  # 给userinfo创建子节点,sex:节点名
sex.text = 

userinfo2 = ET.SubElement(new_xml, "userinfo", attrib={"enrolled": "no"})  # 给new_xml创建子节点,userinfo:节点名,attrib:属性及值
name = ET.SubElement(userinfo2, "name")  # 给userinfo2创建子节点,name:节点名
name.text = name2
age = ET.SubElement(userinfo2, "age")  # 给userinfo2创建子节点,age:节点名
age.text = 24 # 给age节点添加节点内容
sex = ET.SubElement(userinfo2, "sex")  # 给userinfo创建子节点,sex:节点名
sex.text = 

userinfo3 = ET.SubElement(new_xml, "userinfo", attrib={"enrolled": "yes"})  # 给new_xml创建子节点,userinfo:节点名,attrib:属性及值
name = ET.SubElement(userinfo3, "name")  # 给userinfo3创建子节点,name:节点名
name.text = name3
age = ET.SubElement(userinfo3, "age")  # 给userinfo3创建子节点,age:节点名
age.text = 26 # 给age节点添加节点内容

et = ET.ElementTree(new_xml)  # 生成文档对象
et.write("xmltest.xml", encoding="utf-8", xml_declaration=True)  # 写入xmltest.xml文件,xml_declaration指定为xml格式,文件头:<?xml version=‘1.0‘ encoding=‘utf-8‘?>

ET.dump(new_xml)  # 打印生成的格式

执行结果:

技术分享图片

读取xml文件:

tree = ET.parse(xmltest.xml)  # 打开xml文件
root = tree.getroot()  # 获取根节点
# root.tag 获取根节点标签
print(root.tag)  # 获取根节点标签  # namelist

# 遍历xml文档
# text 获取标签内容
# attrib 获取标签属性值
for child in root:
    print(child.tag, child.attrib)  # 获取标签名及属性值
    for i in child:
        print(i.tag, i.text)  # 获取标签名及标签内容

# 遍历指定节点(name)
for node in root.iter(name):
    print(node.tag, node.text)

执行结果:

技术分享图片

修改xml内容:

tree = ET.parse("xmltest.xml")  # 打开xml文件
root = tree.getroot()  # 获取根节点

# 修改,所有age值加1
for node in root.iter(age):
    new_rank = int(node.text) + 1
    node.text = str(new_rank)  # 修改age节点的内容
    node.set("sexvalue", "M/W")  # 给sex节点添加属性

tree.write("xmltest.xml")

执行结果:

技术分享图片

删除xml节点:

tree = ET.parse(xmltest.xml)  # 打开xml文件
root = tree.getroot()  # 获取根节点
# root.tag 获取根节点标签

for userinfo in root.findall(userinfo):  # root.findall 找到所有的 userinfo 节点
    rank = int(userinfo.find(age).text)  # 获取age的值
    if rank > 25:
        root.remove(userinfo)  # 删除age>25的userinfo节点

tree.write(output.xml)  # 删除之后的内容写入output.xml中,也可写入源文件 tree.write(‘xmltest.xml‘)

执行结果:

技术分享图片

 

初识python: xml 操作

原文:https://www.cnblogs.com/simple-li/p/11396546.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!