首页 置换 选车 估价 问答 生活 经销商 车管所 汽车资讯 汽车销量 车牌查询 今日油价 天气预报
您的位置: 首页 > 生活 > 生活 > python解析xml文件内容(Python读写XML文档)
python解析xml文件内容(Python读写XML文档)
更新时间:2024-07-08 12:51:07
概要:了解XML,熟悉Python的读取操作,以及修改、删除操作。一、概述

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

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

二、关于XML实例说明

python解析xml文件内容(Python读写XML文档)1

图2-1

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

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

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

· XML 标签区分大小写

· XML 元素嵌套必须正确

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

· XML 属性必须加引号

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

<class name="123class" grade="2019">

<student id="01">

<name>xiaoli</name>

<sex>male</sex>

<age>15</age>

<result>

<math>80</math>

<english>86</english>

<Chinese>90</Chinese>

</result>

</student>

<student id="02">

<name>xiaohuang</name>

<sex>male</sex>

<age>16</age>

<result>

<math>81</math>

<english>83</english>

<Chinese>76</Chinese>

</result>

</student>

<student id="03">

<name>xiaozhang</name>

<sex>male</sex>

<age>15</age>

<result>

<math>85</math>

<english>84</english>

<Chinese>80</Chinese>

<physics>90</physics>

</result>

</student>

</class>

关于节点的“属性(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("\n")

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:\debug\2019-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:\debug\2019-students_new.xml'

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

4、测试验证

4.1、读取部分运行结果

python解析xml文件内容(Python读写XML文档)2

4.2、修改部分运行结果

python解析xml文件内容(Python读写XML文档)3

5、总结

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

,
相关推荐RECOMMEND
沙发靠垫英文怎么说(的英文原来是这个)
“couchsurfing”,“homesitting”“shorttermrentals”,“capsulehotels”这些住宿方式你听过吗?各种跟当地人联系感情又省钱的住宿新选择推荐给喜欢旅游的...
知乎的衍生产品(知乎的刀挥向了代理商)
知乎的衍生产品?“总部的考核标准每个季度都变,这不是在瞎忽悠人吗?”,我来为大家科普一下关于知乎的衍生产品?以下内容希望对你有帮助!知乎的衍生产品“总部的考核标准每个季度都变,这不是在瞎忽悠人吗?”梓...
怎样瘦背上的赘肉瑜伽动作(如何通过瑜伽自然减少背部脂肪)
我们每个人都希望自己的身体看起来很好。脂肪沉积在不同的部位会很棘手,特别是有些部位我们很难知道如何去除它。其中之一就是背部的脂肪。大部分脂肪沉积在肩胛骨周围和腰部的区域。当摄入更多的食物和缺乏锻炼时,...
道不同不相为谋但不妨碍做朋友(道不同不相为谋)
别人可以看不起你,但你绝不可以自我贬低。悄无声息的努力,让自己变得越来越优秀、越来越强大。有些人真的讨厌、指手画脚、也不见得做事情好到哪里去、对于别人的冷嘲热讽,自以为是,一瓶子不满,半瓶子晃荡。不要...
链家地产左晖发家史(左晖的尴尬3年亏30亿)
文丨李登华出品丨牛刀财经(niudaocaijing)从一家巨无霸中介公司变身房产信息服务平台,左晖用了两年的时间,就完成了商业闭环了最重要的一步——上市。2020年7月24日,在“既是裁判员,又是运...
口袋妖怪go世界地图精灵分布(口袋妖怪go进化方式汇总)
口袋妖怪go中的精灵可以通过进化增加属性,提高战力。那么口袋妖怪go中精灵进化有哪些方式呢?本期小编就来和大家一起分享口袋妖怪go中的精灵进化方式,精灵共有16种进化方式,大部分精灵当然是通过等级进化...