简介:
(1)XML:可扩展性标记语言,用于传输和存储数据,而不是展示数据,是W3C 推举的数据传输格式。
- XML的标签必须自定义,但是在写标签名的时候一定要有含义。
- XML 只能有一个根节点!
菜鸟XML教程:
标准的 XML 数据格式:
<?xml version="1.0" encoding="UTF-8"?> <employees> <employee> <id>1</id> <name>张三</name> <age>30</age> <gender>男</gender> <email>zhangsan@example.com</email> <department>技术部</department> <insurance> <item>养老保险</item> <item>医疗保险</item> <item>失业保险</item> <item>工伤保险</item> <item>生育保险</item> </insurance> <housingFund>3000</housingFund> <enterpriseAnnuity>1000</enterpriseAnnuity> </employee> <employee> <id>2</id> <name>李四</name> <age>28</age> <gender>男</gender> <email>lisi@example.com</email> <department>市场部</department> <insurance> <item>养老保险</item> <item>医疗保险</item> <item>失业保险</item> <item>工伤保险</item> <item>生育保险</item> </insurance> <housingFund>2500</housingFund> <enterpriseAnnuity>800</enterpriseAnnuity> </employee> </employees>
根元素:<employees> 是根元素,表示所有员工信息的集合。
子元素:每个 <employee> 元素表示一个员工的信息。
属性:每个 <employee> 下有多个子元素,包括 id、name、age、gender、email 和 department,分别表示员工的ID、姓名、年龄、性别、电子邮件和部门。
保险信息:<insurance> 元素下可以包含多个 <item> 元素,用于列出员工的五项保险。
住房公积金和企业年金:包含 <housingFund> 和 <enterpriseAnnuity> 元素,分别表示住房公积金和企业年金的金额。
(2)XML 主要功能:
- 程序之间的数据传输通讯;
- 配需文件 config.xml;
- data.xml 存储数据,充当小型数据库
XML 数据格式最主要的功能: 数据传输——>规范数据格式,使数据具有结构性,易读易处理
(3)XML 和 HTML有哪些不一样?
HTML 标签不能自定义,XML 标签只能自定义;
HTML 语法要求不严格;XML 语法要求极其严格,必须是成对标签;
HTML 用来展示数据,XML 用来传输和存储数据
XML基本语法
(1)语法规则:
XML 必须有根节点 ——> 根节点就是其他所有节点的父级节点;
XML 头声明:不强制要求,可有可无,但建议书写;
标签名大小写敏感(区分大小写) ;
标签不允许交叉。
特殊字符使用实体转义,在 XML 中需要转义的字符有:
XML 属性
属性:表示标签自身的一些额外信息。在解析 XML 数据时,属性会带来额外的解析代码(多了一步,比较麻烦)
属性规则:
- 一个标签可以有多个属性,属性的值必须使用引号引起来;
- 命名规则: 数字字母下划线,数字不能开头;
CDATA:
用处:用于表示包含在XML文档中的纯文本数据的一种机制,这些数据不被解析器解析为XML标记。用CDATA节可以避免特殊字符(如 < 和 &)对XML解析产生干扰
注意: 特殊字符较少时,使用实体替换,较多时使用 cdata
PHP 解析 XML 文档
XML 是一种数据传输格式,当 PHP 接收到的数据就是一段 XML 的时候,我们的 PHP 应该怎么处理 XML 数据呢?
在 PHP5 版本以后,其提供了一个非常非常强大的类库,SimpleXML 类库,专门用于实现对 XML 文档的解析操作。
(1)XML在解析步骤:
①读取XML文档到内存;
②形成DOM树结构;
③生成SimpleXML对象。
(2)PHP 解析 XML 后返回对象的注释:
(3)遍历 XML 数组:
(4)添加节点:
案例:
读取以下数据:
XPath
(1)概述:XPath:一门专门用来查找X,数据内容的一门语言——>用来在 XML 文档中对元素及属性进行遍历
(2)使用与语法:
①使用 绝对路径 查找:
②使用 相对路径 查找:
③匹配查找: