PHP - XML 简介



借助 PHP 的内置函数和库,我们可以处理 XML 数据的操作。XML 代表可扩展标记语言,是一种用于结构化文档交换的数据格式,尤其是在 Web 上。

XML 是一种流行的文件格式,用于数据序列化,存储数据、将其传输到另一个位置并在目标位置重建它。

在本章中,我们将学习使用 PHP 处理 XML 的基础知识。

XML 的特性

XML 的一个特性是它既可以被人阅读也可以被机器阅读。XML 的规范由万维网联盟定义和标准化。PHP 解析器可以对 XML 数据执行读/写操作。

XML 标签

与 HTML 类似,XML 文档也由标签组成。但是,您可以定义自己的标签,这与 HTML 不同,在 HTML 中您需要使用预定义的标签来组成 HTML 文档。

HTML 标签本质上是在文本、图像、多媒体资源等上应用格式化属性。XML 标签为数据元素定义用户指定的属性。

XML 文档

XML 文档具有标签的层次结构,这些标签定义文档中数据的元素和属性。每个 XML 文档都包含一个根元素,该元素包含其他元素。元素可以具有属性,这些属性提供有关元素的附加信息或属性。元素中的数据由开始和结束标签括起来。

示例

下面给出了一个典型 XML 文档的示例:

<?xml version = '1.0' encoding = 'UTF-8'?>   
<note>
   <Course>Android</Course>
   <Subject>Android</Subject>
   <Company>TutorialsPoint</Company>
   <Price>$10</Price>
</note>

XML 解析器的类型

在 PHP 中,有两种类型的 XML 解析器可用:

  • 基于树的解析器

  • 基于事件的解析器

基于树的解析器

使用这种类型的解析器,PHP 将整个 XML 文档加载到内存中,并将 XML 文档转换为树结构。它分析整个文档,并提供对树元素的访问。

对于较小的文档,基于树的解析器运行良好,但对于大型 XML 文档,它会导致主要的性能问题。SimpleXML 解析器DOM XML 解析器是基于树的解析器的示例

Simple XML 解析器

Simple XML 解析器也称为基于树的 XML 解析器,它将解析简单的 XML 文件。Simple XML 解析将调用 simplexml_load_file() 方法以从特定路径访问 xml。

DOM 解析器

DOM 解析器也称为复杂节点解析器,用于解析高度复杂的 XML 文件。它用作修改 XML 文件的接口。DOM 解析器使用 UTF-8 字符编码进行编码。

基于事件的解析器

基于事件的解析器不会将整个 XML 文档加载到内存中。相反,它一次读取一个节点。解析器允许您实时交互。一旦您移动到下一个节点,旧节点将从内存中删除。

由于不涉及内存过载,因此这种类型的解析器适用于大型 XML 文档,并且文档的解析速度比任何基于树的解析器都快。XMLReader 和 XML Expat 解析器是基于事件的解析器的示例。

XML 解析器

XML 解析基于 SAX 解析。它比所有上述解析器都快。它将创建 XML 文件并解析 XML。XML 解析器使用 ISO-8859-1、US-ASCII 和 UTF-8 字符编码进行编码。

XML Reader

XML Reader 解析也称为 Pull XML 解析。它用于以更快的速度读取 XML 文件。它适用于具有 XML 验证的高度复杂的 XML 文档。

广告