通过new创建xml文件_Python读写XML文档

本文介绍了XML的基本概念,强调了其在数据传输和存储中的应用。使用Python的ElementTree模块,详细展示了如何读取XML文档,包括获取节点信息、遍历结构。此外,还演示了如何修改XML文档,如删除不合规元素和更新节点内容,并提供了读取和修改操作的示例代码。最后,文章强调理解XML规范对提高编程效率的重要性。
摘要由CSDN通过智能技术生成

概要:了解XML,熟悉python的读取操作,以及修改、删除操作。

一、概述

XML(eXtensible Markup Language),即可扩展标记语言,可以任意定义需要的标签,因为它扩展的灵活性,被广泛应用于各类数据的传输和存储。

Python对XML提供了良好的模块支持,在各类模块处理方式中,ElementTree模块因为他的简单易用性得到了广泛应用。

二、关于XML实例说明

8672fba3463e2a741756c0b30c7b9ad7.png

图2-1

1、XML文件采用一种树形表示,由一个根节点、子节点组成,每个节点都可以拥有“属性(attrib)”、“内容(text)”、“标签(tag)”三部分内容。

2、XML必须遵循的规范性:

· XML 文档必须有一个根元素

· XML 标签区分大小写

· XML 元素嵌套必须正确

· XML 文档必须有开始标签、关闭标签配对

· XML 属性必须加引号

3、如下“2019-students.xml”文档,作为后续python处理的基础:

xiaoli

male

15

80

86

90

xiaohuang

male

16

81

83

76

xiaozhang

male

15

85

84

80

90

关于节点的“属性(attrib)”、“内容(text)”、“标签(tag)”具体指什么,可以通过python的输出直观的认识下。

三、python读写xml文档

1、新建myxml工程

2、新建python文件xml_test.py文件,实现编码

#模块导入

import xml.etree.ElementTree as ET

######################################

#子函数编写

#读操作

def read_xml(root):

# 获取二级节点信息

students = root.findall("student")

for student in students:

name = student.find("name")

print("")

print("name节点的名称为:%s, 属性为:%s, 文本内容:%s" % (name.tag, name.attrib, name.text))

# result有“元素内容”,没有“文本内容”,所以文本内容为空

result = student.find("result")

# 遍历所有子节点

for course in result:

print("result子节点的名称为:%s, 文本内容:%s" % (course.tag, course.text))

return

#修改操作

def change_xml(root):

students = root.findall("student")

for student in students:

# 1、删除不合规元素physics

result = student.find("result")

for course in result:

if course.tag == "physics":

result.remove(course)

# 2、修改name元素为对应中文

name = student.find("name")

if name.text == 'xiaoli':

name.text = '小李'

elif name.text == 'xiaohuang':

name.text = '小黄'

elif name.text == 'xiaozhang':

name.text = '小张'

if __name__ == '__main__':

#原始文件

filename = r'E:debug2019-students.xml'

tree = ET.parse(filename)

#获得根节点

root = tree.getroot()

print("根节点的名称为:%s, 属性为:%s" % (root.tag,root.attrib))

#读操作

read_xml(root)

# 修改操作

change_xml(root)

#保存新文件

filename_new = r'E:debug2019-students_new.xml'

tree.write(filename_new, "UTF-8")

4、测试验证

4.1、读取部分运行结果

b5dbd9131c91c5e1a67ef2db27e1ef35.png

4.2、修改部分运行结果

41c6272f0f618c987888b9ed36a540b1.png

5、总结

熟悉XML规范,程序编码才能更加规范效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值