XML 本质上只是一种数据格式,它的本意并不是管理数据,因此,在 XML 应用中,数据的管理仍然要借助数据库,尤其是当数据量很大、性能要求很高的时候。

XML数据库具有以下优势:

XML数据库能够对半结构化数据进行有效的存取和管理。如网页内容就是一种半结构化数据,而传统的关系型数据库对于网页内容这类半结构化数据无法进行有效的管理;

提供对标签名称和路径的操作。传统的数据库允许对数据元素的值进行操作,但不能对元素名称进行操作;而半结构化数据库提供了对标签名称的操作,还包括对路径的操作;

由于XML数据格式能够清晰地表达数据的层次特征,因此XML数据库便于对层次化的数据进行操作。

在 Python 中使用 xml.etree.ElementTree 类来进行 XML 的解析操作,读取代码如下:

import xml.etree.ElementTree as ET

tree = ET.parse('student.xml')

root = tree.getroot()

#打印根节点的标签和属性

for child, in root:

print(child.tag, child.attrib)

for student in root.findall_('student'):

id = student.find('id').text

age = student.find('age').text

xuehao = student.find('xuehao').text

print(id,age,xuehao)

在读取中,findall( ) 方法只能用来查找直接子元素,而 find( ) 方法能够用来查找第一个直接子元素,并通过 tag 访问标签,通过 attrib 访问属性,通过 text 访问值。

xml.etree.ElementTree 类也可以用来修改 XML 文件,代码如下:

import xml.etree.ElementTree as ET

#读取待修改的文件

updateTree = ET.parse("04.xml")

root = updateTree.getroot()

#创建新节点并添加为root的子节点

newEle = ET.Element("wangwu")

newEle.attrib = {"xuehao":"201809", "age":"20"}

newEle.text = "这是一个新同学"

root.append(newEle)

#修改 sub1 的 xuehao 属性

sub1 = root.find("lisi")

sub1.set("xuehao","20190101")

#修改 sub2 的数据值

sub2 = root.find("zhangsan")

sub2.text = "我是张三"

#写回原文件

updateTree.write("04.xml")

修改前的XML文件内容为:

20

修改后的XML文件内容为:

我是张三

这是一个新同学

程序运行结果增加了一个标签,并修改了其他两个标签的值。Python 还可以创建新的 XML 文件,在这里不再一一讲解。

python处理xml文件_Python解析并修改XML文件相关推荐

  1. python怎么读取pdf文件_Python解析并读取PDF文件内容的方法

    本文实例讲述了Python解析并读取PDF文件内容的方法.分享给大家供大家参考,具体如下: 一.问题描述 利用python,去读取pdf文本内容. 二.效果 三.运行环境 python2.7 四.需要 ...

  2. 面试官问我:如何在 Python 中解析和修改 XML

    摘要:我们经常需要解析用不同语言编写的数据.Python提供了许多库来解析或拆分用其他语言编写的数据.在此 Python XML 解析器教程中,您将学习如何使用 Python 解析 XML. 本文分享 ...

  3. libxml2生成,解析,修改xml文件,以及使用实例

    利用libxml2生成,解析,修改xml文件. 1. 生成xml文件 // createXmlFile.cpp#include <stdio.h> #include <libxml/ ...

  4. java对xml文件的解析_Java对XML文件的解析

    XML简介 围绕XML涉及到四方面的技术: 1.数据定义Schema.DTD 2.数据解析DOM.SAX两种解析模型 3.样式风格XSTL,使用XSTL可以将XML文件中存放的内容按照指定的样式显示为 ...

  5. xml介绍与解析,及xml库包使用

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 xml介绍与解析,及xml库包使用 文章目录: 1 XML简单介绍 1.1 XML简单介绍 1.2 XML语法结构 2 ...

  6. python 解析xml格式_Python解析XML文件

    1.概述 Python有三种方法解析XML:SAX,DOM,以及ElementTree: 1.SAX (simple API for XML ) python 标准库包含SAX解析器,SAX用事件驱动 ...

  7. 了解女友的心还不如了解Python之在Python中解析和修改XML

    2021年12月15日 10:14 ·  阅读 30 摘要: 工作中我们时常需要解析用不同语言编写的数据.Python 提供了许多库来解析或拆分用其他语言编写的数据.在这篇 Python XML 解析 ...

  8. python读取windows日志_Python解析windows系统日志文件

    DOM是Document Object Model的简称,XML 文档的高级树型表示.该模型并非只针对 Python,而是一种普通XML 模型.Python 的 DOM 包是基于 SAX 构建的,并且 ...

  9. python播放本地视频_python opencv 读取本地视频文件 修改ffmpeg的方法

    Python + opencv 读取视频的三种情况: 情况一:通过摄像头采集视频 情况二:通过本地视频文件获取视频 情况三:通过摄像头录制视频,再读取录制的视频 摄像头采集.本地视频文件的读取.写视频 ...

最新文章

  1. Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法
  2. 新同事上来就把项目性能优化了一遍,瑟瑟发抖。。。
  3. java汽车租赁系统_汽车租赁公司全网低价
  4. Syntax error: word unexpected (expecting ))错误的解决方法
  5. ole2高级编程技术 pdf_21天快速掌握Python语言,《21天学通Python》PDF版送给你去学...
  6. Quartz教程:快速入门
  7. aftool刷工具提示15天_【15天】【指数600+】关键词百度首页【实战分析】【面授学员】...
  8. iptable防火墙流程图
  9. MAC下ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  10. 2018云+未来峰会圆桌面对面:以网络安全之能,造国之重器
  11. x86汇编指令集大全(带注释)
  12. 网页播放器的使用(ckplayer)
  13. 多张图片合成一个mp4的视频
  14. 关于IE主页被篡改成2345、360、hao123等页面的说明
  15. Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)...
  16. 基于FPGA的高速电路板设计
  17. Why does Markov Matrix contain eigenvalue=1 and eigenvalues less than or equa to1?
  18. 洛谷P1367 蚂蚁
  19. 云教室桌面虚拟化环境搭建——flexVDI Dashboard 3.0 云桌面管理系统的使用
  20. with recursive用法

热门文章

  1. 20应用统计考研复试要点(part15)--应用多元分析
  2. R语言之连接mysql数据库
  3. 一个实际的例子学习 SAP BTP Java 应用的 @Before 注解使用方式
  4. SAP Spartacus的API暴露逻辑和index.ts的设计原理 - 什么是所谓的PUBLIC API
  5. 使用ConfigModule.withConfig替换SAP Spartacus标准Component
  6. Eclipse里调试时遇到Source not found应该怎么办
  7. ant build.xml文件中能使用的属性介绍
  8. 一个SAP Marketing Cloud和Kyma的集成
  9. Filter handling in SAP gateway
  10. OPA 22 - sinor fake xml http request