Python高级编程——XML解析

Python高级编程——XML解析

在这里插入图片描述

什么是XML

XML指可扩展标记语言。
标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。
在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。


<?xml version="1.0" encoding="UTF-8"?>是xml文件的声明,它定义了xml的版本 (1.0)和所使用编码为UTF-8。

xml文件的内容,这些内容按一个树状结构进行组织摆放,形式如下:

 <root>
	<child>
		<subchild>.....</subchild>
		<subchild>.....</subchild>
	</child>
</root>

其中,每一个<XXX>.</XXX>叫做一个节点,也叫一个元素,节点可以嵌套放置,也可以并列放置,在嵌套结构中,内外层节点是父子关系,以此类推,最外层的节点都叫做根节点。并列的两节点为兄弟关系。
对于每一个节点,一般由Tag、Attribute、Text三部分构成。在country_data.xml中data,country,rank,year这些都是tag。与tag同一尖括弧内右边的是Attribute,比如:name。Text就是两个尖括弧中间夹的东西了。


XML解析

Python有三种方法解析XML:SAX,DOM和ElementTree。

SAX(XML的简单API)

Python标准库包含SAX解析器,SAX用事件驱动模型,通过在解析XML的过程中触发一个个事件并调用用户定义的变量函数来处理XML文件。

DOM(文档对象模型)

将XML数据在内存中解析成一个树,通过对树的操作来操作XML。

ElementTree(元素树)

ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用好,速度快,消耗内存少。

注:因DOM需要将XML数据映射到内存中的树,一是比较慢,二是比较耗用内存,而SAX流式读取XML文件,比较快,占用内存少,但需要用户实现所需的函数(处理程序)。

猜你喜欢

转载自blog.csdn.net/Box_sir/article/details/107900288