- PHP 教程
- PHP - 首页
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 特性
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP - 数据类型
- PHP - 类型转换
- PHP - 类型混合
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件与 I/O
- PHP - 数学函数
- PHP - Heredoc 和 Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期和时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符
- PHP - 算术运算符
- PHP - 比较运算符
- PHP - 逻辑运算符
- PHP - 赋值运算符
- PHP - 字符串运算符
- PHP - 数组运算符
- PHP - 条件运算符
- PHP - 展开运算符
- PHP - 空值合并运算符
- PHP - 比较符
- PHP 控制语句
- PHP - 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP - 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - Do…While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值传递
- PHP - 按引用传递
- PHP - 默认参数
- PHP - 具名参数
- PHP - 可变参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量作用域
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头函数
- PHP - 可变函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 文件处理
- PHP - 文件处理
- PHP - 打开文件
- PHP - 读取文件
- PHP - 写入文件
- PHP - 文件是否存在
- PHP - 下载文件
- PHP - 复制文件
- PHP - 追加文件
- PHP - 删除文件
- PHP - 处理 CSV 文件
- PHP - 文件权限
- PHP - 创建目录
- PHP - 列出文件
- 面向对象 PHP
- PHP - 面向对象编程
- PHP - 类和对象
- PHP - 构造函数和析构函数
- PHP - 访问修饰符
- PHP - 继承
- PHP - 类常量
- PHP - 抽象类
- PHP - 接口
- PHP - 特性
- PHP - 静态方法
- PHP - 静态属性
- PHP - 命名空间
- PHP - 对象迭代
- PHP - 封装
- PHP - Final 关键字
- PHP - 重载
- PHP - 克隆对象
- PHP - 匿名类
- PHP Web 开发
- PHP - Web 概念
- PHP - 表单处理
- PHP - 表单验证
- PHP - 表单邮件/URL
- PHP - 完整表单
- PHP - 文件包含
- PHP - GET 和 POST
- PHP - 文件上传
- PHP - Cookie
- PHP - Session
- PHP - Session 选项
- PHP - 发送邮件
- PHP - 净化输入
- PHP - Post-Redirect-Get (PRG)
- PHP - 闪存消息
- PHP 高级
- PHP - MySQL
- PHP.INI 文件配置
- PHP - 数组解构
- PHP - 编码规范
- PHP - 正则表达式
- PHP - 错误处理
- PHP - Try…Catch
- PHP - Bug 调试
- PHP - 针对 C 开发人员
- PHP - 针对 PERL 开发人员
- PHP - 框架
- PHP - Core PHP 与框架
- PHP - 设计模式
- PHP - 过滤器
- PHP - JSON
- PHP - 异常
- PHP - 特殊类型
- PHP - 哈希
- PHP - 加密
- PHP - is_null() 函数
- PHP - 系统调用
- PHP - HTTP 认证
- PHP - 交换变量
- PHP - Closure::call()
- PHP - 过滤后的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 期望
- PHP - Use 语句
- PHP - 整数除法
- PHP - 已弃用功能
- PHP - 已删除扩展和 SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 进程
- PHP - PDO 扩展
- PHP - 内置函数
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 文档。