Php 简明教程

PHP - XML Introduction

借助 PHP 的内置函数和库,我们可以处理 XML 数据的处理。XML(eXtensible Markup Language 的缩写)是一种用于结构化文档交换的数据格式,特别是在网络上。

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

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

Features of XML

XML 的一个特点是它既可读,又可机器读。XML 的规范由万维网联盟定义和标准化。PHP 解析器可以在 XML 数据上执行读/写操作。

XML Tags

与 HTML 类似,XML 文档也是借助 tags 组成的。然而,你可以定义自己的标签,这不像 HTML,在其中你需要使用预定义的标签才能编写 HTML 文档。

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

XML Document

XML 文档具有标签的层次结构,这些标签定义文档中数据的元素和属性。每个 XML 文档都包含一个根元素,它封装了其他元素。元素可以具有属性,这些属性提供有关元素的其他信息或特性。元素中的数据通过开始和结束标签来封装。

Example

以下是典型 XML 文档的示例 −

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

Types of XML Parsers

在 PHP 中,有两种类型的 XML 解析器 −

  1. Tree based parsers

  2. Event based parsers

Tree-based Parsers

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

For smaller documents, tree-based parser works well ,但对于大型 XML 文档,它会导致重大的性能问题。 SimpleXML parserDOM XML parser 是基于树的解析器的示例

Simple XML Parser

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

DOM Parser

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

Event-based Parsers

基于事件的解析器不会在内存中加载整个 XML 文档。相反,它一次读取一个节点。解析器允许你实时交互。一旦你移到下一个节点,以前的那个节点就会从内存中移除。

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

XML Parser

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

XML Reader

XML 阅读器解析也称为 Pull XML 解析。它用于以更快的速度读取 XML 文件。它可以与具有 XML 验证的高复杂 XML 文档配合使用。