xml笔记
程序员文章站
2024-01-03 08:53:34
...
xml概述
-
xml最主要的功能就是数据传输
-
其他功能
1.数据之间的数据传输通讯
2.配置文件,如:config.xml
3.存储数据,充当小型数据库,如:date.xml -
规范数据格式,使数据具有结构性。
什么是xml
-
可扩展性标记语言
-
目的:传输和存储数据,而不是展示数据
-
xml的标签必须自定义,写标签一定要有含义
-
w3c推举的数据传输格式
-
xml和html有哪些不一样
1.html标签不能自定义,xml必须自定义
2.html语法不严格xml语法严格,必须是成对标签
3.html用来展示数据,xml用来传输和存储数据
xml基本语法
语法规则
- xml必须有根节点 <root></root>
- 建议写头声明
- 必须成对标签
- 大小写敏感
属性
- 解析会带来额外解析代码,较为麻烦
CDATA
- 特殊字符较少时使用实体替换,较多时使用CDATA,CDATA必须大写
php解析xml
xml是一种数据传输格式,当php接受到的数据是一段xml时候,php5版本后提供了一个SimpleXML类,用于实现xml文档的解析操作
xml原理解析
- php解析xml共3步
1.读取xml文档到内存
2.形成DOM树
3.由DOM树生成对象并返回
SimpleXML类库
- 调用simple_load_file()函数,解析生成的对象
- php将xml节点以属性的形式存放
- 内容若有多条,以数组形式存放
- 数组的值就是解析后的节点名字和内容,以对象属性的形式存放
遍历xml数据
//simple_load_file解析xml文档,返回php对象
$xml = simplexml_load_file('test.xml');
foreach ($xml->man as $v){
echo $v->name."<br/>";
}
for ($i=0;$i<count($xml);$i++){
echo $xml->man[$i]->name."<br/>";
}
添加节点
//simple_load_file解析xml文档,返回php对象
$xml = simplexml_load_file('test.xml');
//对象中的addChild方法创建节点
$man = $xml->addChild('man');
//给创建后的节点添加内容
$man->addChild('name','tho Third');
$man->addChild('age','34');
echo "<pre>";
var_dump($xml);
//将添加后的内容重新解析成xml文档,写入文件
$xml->asXML('test.xml');
可以将网络数据xml用file_get_content()读成字符串,再用simple_load_file()获取xml字符串数据
Xpath语言
- Xpath是专门用来查找xml数据的一门语言,用来在xml文档中的元素和属性进行遍历
使用及语法
- 绝对路径
//simple_load_file解析xml文档,返回php对象
$xml = simplexml_load_file('test.xml');
//Xpath查找后返回数组,数组中的值仍是个对象
$p = $xml->xpath('/project/man/name');//参数为路径,以/开始的为绝对路径
echo "<pre>";
var_dump($p);
foreach ($p as $v){
echo $v."<br/>";
}
- 相对路径
//simple_load_file解析xml文档,返回php对象
$xml = simplexml_load_file('test.xml');
//Xpath查找后返回数组,数组中的值仍是个对象
$p = $xml->xpath('//man/*');//双//为相对路径,此为man节点下的所有子节点
$b = $xml->xpath('//man[age>20]');
echo "<pre>";
var_dump($p);