一,xml概述
1.1引入
在我们日常生活中我们在各种网站上面个看到他们都有天气什么的,他们展示的形式可能不同,但他们所用的数据是一样的,那他们肯定已不是从卫星直接获取的而是从国家的一些平台获取的
但是在获取他们的数据的时候他,因为有很多种语言都能写后端,们不可能是用你的那种语言写的格式,他要针对所有的平台进行发布,就用到了xml格式:
XML数据格式最主要的功能就是数据传输(就是从一个网站传到另一个网站)
XML数据格式还有什么用途呢?
配置文件: config.xml (我们一个网站可能有几种语言编写,我们不可能给每种语言都配置相应的文件,我们就能用xml格式让他们都能用)
储存数据: 当作小型数据库 data.xml
xml的效果:使数据具有结构性,易读易处理
什么是XML
XML指的是可扩展性标记语言(html也是一个标记性语言);
XML被发明的目的是传输和存储数据,而不是展示数据;
XML的标签必须自定义,在写标签名的时候一定要有含义;
XML是W3C推举的数据传输格式;
如何自己写一段XML?
<root> #所有的XML必须有一个根节点
<user>内容</user>
<msg>内容</msg>
</root>
XML和HTML有哪些区别?
1:HTML标签不能自定义,XML标签只能自定义;
2:HTML语法要求不严格,XML标签语法要求极其严格,必须是成对标签;
3:XML用来传输和存储数据,HTML用来展示数据;
二,XML的基本语法
语法规则
XML必须有根节点;
根节点就是所有节点的父级节点(习惯是用root,但也可以自己定义)
XML的头声明可有可无,但是建议写
因为编码很重要
所有XML标签都要成对出现
标签名大小写敏感
标签不能交叉
特殊符号要用实体转义
在xml中需要转义的字符有:
< < > >
& &
‘ ‘
” “‘
<?xml version="1.0" encoding="utf-8" ?> #头声明
<root>
<define>text</define>
<!-- <a>这是注释</a> -->
<msg> 如果a < b ,就正确</msg> # 转义
</root>
元素属性
属性原则:
一个标签可以有多个属性
属性的值必须用双引号或单引号引起来
命名规则:数字字母下划线,不能让数字开头
属性就是表示标签的 一些额外信息;
XML中属性就是个鸡肋(食之无肉,弃之有味)
在解析XML数据时,属性会带来额外的解析代码;
CDATA
<?xml version="1.0" encoding="utf-8" ?> #头声明
<root>
<man>
<name>
<!--<![CDATA[ 不解析的内容 ]]>-->
<msg><![CDATA[尼古拉斯赵四说2>3]]</msg>
</name>
</man>
</root>
注意特殊字符较少时特殊字符有实体,较多时用CDATA(要大写)
三,使用PHP解析XML
XML时一种数据传输格式,当PHP接收到数据就是一段XML的时候,我们的PHP应该怎么处理XML数据呢?
在PHP5版本后,其提供了一个非常强大的类库,SimpleXML类库,专门有于实现对XML文档的解析操作.
XML解析原理
PHP解析三步:
1:读取XML文档到内存
2:形成DOM树
3:由DOM树生成对象并返回;
<?php
// simplexml_load_file 解析XML文档,返回PHP对象
# file_get_contents("") 读普通文件
$x = simplexml_load_file('3.1.xml');
echo $x->man[0]->name
?>
php解析生成的DOM树:
遍历XML数据
<?php
$x = simplexml_load_file('3.1.xml');
foreach($x->man as $v){
echo $v->name;
}
$c=count($x->man);
for($i=0;$i<$c;$i++){
echo $x->man[$i]->name;
}
?>
使用simpleXML增加节点
<?php
$x = simplexml_load_file('3.1.xml');
//对象中的addChild方法创建节点
$man = $x->addChile('man')
//对象中的addChild方法创建节点并给创建后的节点添加内容
$man->addChile('name','玉帝');
$man->addChile('age','999');
//将添加的对象重新解析成XML文档,写入文件
$x->asXML('3.1.xml');
?>
案例
表单提交页面:
后端:
四,Xpath语言
概述
他是一门专门用于查找XML数据内容的语言;
他是用来在XML文档中对元素及属性进行遍历;
使用及其语法
绝对路径查找:
相对路径查找:
其他查找:
- 最新
- 最热
只看作者