XML

1.XML概述

1.1.引入

XML数据格式最主要的功能是:数据传输

配置文件:config.xml。

存储数据,充当小型数据库

规范数据格式,使数据更具有结构性

1.2.什么是XML

  • XML:可扩展性标记语言。
  • XML被被发明的目的:传输和存储数据,而不是用来展示数据!!!!
  • XML的标签必须自定义,但是在写标签名的时候一定要有含义。
  • XML:是W3C推举的数据传输格式
  • XML和HTML有什么区别:1)HTML标签不能自定义,但是XML必须自定义

​ 2)HTML语法不严格,XML语法极其严格。

​ 3)传输和存储数据,而不是用来展示数据!!!!

2.XML语法

2.1.语法规则

XML必须有根节点。(根节点:所有其他节点的父级节点)

XML头申明:可有可无(<?xml version="1.0" encoding="ytf-8"?>)

  • 所有XML都必须是成对标签
  • 标签名的大小写敏感
  • 标签不能交叉
  • 注释也是和HTML一样的
  • 特殊字符使用实体:< = &lt; > = &gt;

2.2.属性

  • 属性规则:一个标签可以有多个属性,属性的值必须用引号引起来。

image-20201123204408654

  • 属性:表示标签自身的额外信息;
  • 在XML中属性就是鸡肋
  • 在解析XML数据时候,属性会带来额外代码

2.3.CDATA

  • CDATA的内容不解析

image-20201124110225599

  • 注意:特殊字符较少的时候使用实体,较多的时候利用CDATA

3.使用PHP来解析XML

3.1.XML解析原理和simple类库

  • 在PHP5版本以后,提供了一个非常强大库:SimpleXML类库,专门用于实现对XML文档的解操作

image-20201124113507416

  • 三步:1)读取XML内容到内存

​ 2)形成DOM树。

​ 3)形成对象

3.2.遍历XML数据

  • foreach

image-20201124114040020

  • for循环

3.3.使用后SimpleXML来添加节点

image-20201124115004304

3.4.其他

  • simple_load_string();参数接受XML内容,而不是文件地址。

搭配file_get_contents();

4.Xpath语言

4.1.概述

  • Xpath:是一种专门用来查找XML数据的语言;
  • 用来在XML文档中对元素及属性进行遍历;

4.2.使用及语法

image-20201124121429794

  • 使用*匹配所有
  • [@属性]

5.DTD

  • DTD:(document type defination):XML的格式规范

示例代码:

<?xml version="1.0"?>//这一行是 XML 文档定义
<!DOCTYPE message [
<!ELEMENT message (receiver ,sender ,header ,msg)>
<!ELEMENT receiver (#PCDATA)>
<!ELEMENT sender (#PCDATA)>
<!ELEMENT header (#PCDATA)>
<!ELEMENT msg (#PCDATA)>

这个DTD就定义了XML的根元素就是message,然后其他子元素是里面的诸如receiver等。

  • 实体:XML标签中的内容