xml笔记

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类库

-

  1. 调用simple_load_file()函数,解析生成的对象
  2. php将xml节点以属性的形式存放
  3. 内容若有多条,以数组形式存放
  4. 数组的值就是解析后的节点名字和内容,以对象属性的形式存放

遍历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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值