在 PHP 的内置函数和库的帮助下,我们可以处理 XML 数据的操作。XML 代表可扩展标记语言,是一种用于结构化文档交换的数据格式,尤其是在 Web 上。
XML 是一种流行的文件格式,用于对存储数据的数据进行序列化,将其传输到另一个位置,并在目标位置重建数据。
在本章中,我们将学习使用 PHP 进行 XML 处理的基础知识。
XML 的功能
XML 的一个特点是它既是人类可读的,也是机器可读的。XML 的规范由万维网联盟定义和标准化。PHP 解析器可以对 XML 数据执行读/写操作。
XML 标记
与 HTML 一样,XML 文档也是在标签的帮助下编写的。但是,您可以定义自己的标签,这与 HTML 不同,您需要使用预定义的标签来编写 HTML 文档。
HTML 标签实质上是将格式属性应用于文本、图像、多媒体资源等。XML 标记定义用户为数据元素指定的属性。
XML 文档
XML 文档具有标记的层次结构,这些标记定义文档中数据的元素和属性。每个 XML 文档都由一个包含其他元素的根元素组成。元素可以具有属性,这些属性提供有关元素的其他信息或属性。元素中的数据由开始和结束标签括起来。
例子
下面给出了一个典型的 XML 文档示例 -
<?xml version = '1.0' encoding = 'UTF-8'?>
<note>
<Course>Android</Course>
<Subject>Android</Subject>
<Company>qikepu</Company>
<Price>$10</Price>
</note>
XML 解析器的类型
在 PHP 中,有两种类型的 XML 解析器可用 -
- 基于树的解析器
- 基于事件的解析器
基于树的解析器
使用这种类型的解析器,PHP 将整个 XML 文档加载到内存中,并将 XML 文档转换为 Tree 结构。它分析整个文档,并提供对 Tree 元素的访问。
对于较小的文档,基于树的解析器效果很好,但对于大型 XML 文档,它会导致主要的性能问题。SimpleXML 解析器和 DOM XML 解析器是基于树的解析器的示例
简单 XML 解析器
简单 XML 解析器也称为基于树的 XML 解析器,它将解析简单的 XML 文件。Simple XML parse 将调用 simplexml_load_file() 方法以从特定路径访问 xml。
DOM 解析器
DOM 解析器也称为复杂节点解析器,用于解析高度复杂的 XML 文件。它用作修改 XML 文件的接口。DOM 解析器使用 UTF-8 字符编码进行编码。
基于事件的解析器
基于事件的解析器不会在内存中加载整个 XML 文档。相反,它一次读取一个节点。解析器允许您实时交互。移动到下一个节点后,旧节点将从内存中删除。
由于不涉及内存过载,因此这种类型的解析器适用于大型 XML 文档,并且文档的解析速度比任何基于树的解析器都快。XMLReader 和 XML Expat Parser 是基于事件的解析器的示例。
XML 解析器
XML 解析基于 SAX 解析。它比上述所有解析器更快。它将创建 XML 文件并解析 XML。XML 解析器已使用 ISO-8859-1、US-ASCII 和 UTF-8 字符编码进行编码。
XML 读取器
XML Reader 解析也称为 Pull XML 解析。它用于以更快的方式读取 XML 文件。它适用于具有 XML 验证的高复杂度 XML 文档。