概述
XML:可扩展性标记语言,规范了数据格式,使数据具有结构性。最主要的功能就是数据传输,也可用于配置文件、存储数据。
XML的标签只能自己定义,但是在写标签名的时候一定要有定义。
基本语法
语法规则
XML对语法要求极其严格,必须是不交叉的成对标签,且标签名大小写敏感(区分大小写)
必须有一组根标签包裹所有的内容(通常用<root></root>),是其他所有节点的父节点
XML有头声明(<?xml version="1.0" encoding = "utf-8"?>),但不是必要的,建议书写
注释(<!-- -->)和html一样
特殊字符用实体转义
元素属性标签
eg:<name age="38">正义</name>
一个标签可以有多个属性,属性的值必须使用引号
命名规则:数字字母下划线,数字不能开头
属性就是表示标签自身的一些额外信息
在XML中不经常使用属性
在解析XML数据时,属性会带来额外的解析代码
CDATA
<![CDATA[……不解析的内容……]]>
如果在一段内容中存在大量需要用转义字符替换时,可以使用CDATA语句强制不解析这一段内容
XML约束
书写xml的规范/规则/标准,限定xml文件中可使用的标签以及属性(顺序/类型/格式)
DTD约束
约束的粒度比较粗糙,后缀名:.dtd
<!ELEMENT 元素名(子元素,如过是简单元素(没有子元素)这里写“#PCDATA”)>声明可以使用哪些标签
子元素在括号内用“,”分隔表示子元素必须按顺序都出现
如果用“|”分隔表示子元素能且只能出现某一个
子元素默认只能出现一次,如果想要出现多次,可以在子元素的名称后面加符号
(?:一次)(+:[1,∞))(*:[0,∞))
属性约束:
引入DTD:
schema约束
约束的粒度比较细致,后缀名:.xsd,但本质上也是一个xml文件
schema可以使用名称空间区分,支持更多数据类型
schema的书写需要在W3C的约束下编写
引入:
使用PHP解析XML文档
利用php的官方simpleXML类库解析XML文档
利用simple库中导入xml的函数方法,会将一个xml文件解析为一个对象
XML解析原理
根节点不解析
根据标签将XML文档中的内容解析为DOM树
Xpath语言
概述
Xpath是一门专门用来查找XML数据内容的一门语言
用来在XML文档中对元素及属性进行遍历
使用及语法
xpath('/路径'):返回的是路径上的数组,数组中的值是 对象
路径:以“/”开始的为绝对路径;以“//”为相对路径,返回所有这个以这个路径名为标签的XML对象
*:在路径中表示所有
图片来源于网络