php的SimpleXML方法读写XML接口文件实例解析


Posted in PHP onJune 16, 2014

在php5中读写xml文档是非常方便的,可以直接使用php的SimpleXML方法来快速解析与生成xml格式的文件,下面举例说明:

创建一个SimpleXML对象有三种方法:

1.使用new关键字创建

$xml="<personinfo><item><id>1</id><name>aaa</name><age>16</age></item>
<item><id>2</id><name>bbb</name><age>26</age></item></personinfo>";
$rss=new SimpleXMLElement($xml);

2.使用simplexml_load_string()创建

$xml="<personinfo><item><id>1</id><name>aaa</name><age>16</age></item>
<item><id>2</id><name>bbb</name><age>26</age></item></personinfo>";
$rss=simplexml_load_string($xml);

3.使用simplexml_load_file()从一个URL创建

$rss=simplexml_load_file("rss.xml");
//或者:
$rss=simplexml_load_file("/rss.xml");//远程文档

具体实例如下:

<?php
$xml="<personinfo><item><id>1</id><name>aaa</name><age>16</age></item><item><id>2</id><name>bbb</name><age>26</age></item></personinfo>";
$rss=new SimpleXMLElement($xml);
foreach($rss->item as $v){
 echo $v->name,'<br />';
}
echo $rss->item[1]->age;//读取数据
echo '<hr>';
$rss->item[1]->name='ccc';//修改数据
foreach($rss->item as $v){
 echo $v->name,' <br /> ';//aaa <br /> ccc <br />
}
echo '<hr>';
unset($rss->item[1]);//输出数据
foreach($rss->item as $k=>$v){
 echo $v->name,' <br /> ';//aaa <br />
}
echo '<hr>';
//添加数据
$item=$rss->addChild('item');
$item->addChild('id','3');
$item->addChild('name','ccc_new');
$item->addChild('age','40');
foreach($rss->item as $k=>$v){
 echo $v->name,' <br /> ';//aaa <br /> ccc_new <br />
}
$rss->asXML('personinfo.xml');
?>

进一步分析上面例子如下:

//xml数据的读取
//可以直接通过元素的名称来访问特定的元素。文档中的所有元素都被看成是该对象的属性。
foreach($rss->item as $v){
    echo $v->name,' <br /> ';//aaa <br /> bbb <br />
}
echo $rss->item[1]->age;//26
//xml数据修改,可以直接利用对象属性赋值的方法来直接编辑一个元素的内容
$rss->item[1]->name='ccc';//修改数据
foreach($rss->item as $v){
    echo $v->name,' <br /> ';//aaa <br /> ccc <br />
}
//可以用php内容函数unset来将一个元素从树中删除
unset($rss->item[1]);
foreach($rss->item as $v){
    echo $v->name,' <br /> ';//a 3water.com aa <br />
}
//xml添加元素数据,可通过对象的addChild方法来实现
$item=$rss->addChild('item');
$item->addChild('id','3');
$item->addChild('name','ccc_new');
$item->addChild('age','40');
foreach($rss->item as $k=>$v){
    echo $v->name,' <br /> ';//aaa <br /> ccc_new <br />
}
//xml数据的存储
//使用对象的asXML()方法
$rss->asXML('personinfo.xml');//将xml数据存储到personinfo.xml文件中
PHP 相关文章推荐
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
PHP __autoload()方法真的影响性能吗?
Mar 30 PHP
PHP的简易冒泡法代码分享
Aug 28 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
PHP+Ajax实现验证码的实时验证
Jul 20 PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 PHP
详解json在php中的应用
Sep 30 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
Thinkphp中Create方法深入探究
Jun 16 #PHP
ThinkPHP中的关联模型注意点
Jun 16 #PHP
用PHP代替JS玩转DOM的思路及示例代码
Jun 15 #PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 #PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 #PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 #PHP
PHPAnalysis中文分词类详解
Jun 13 #PHP
You might like
使用 MySQL Date/Time 类型
2008/03/26 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
PHP编写RESTful接口
2016/02/23 PHP
Js数组排序函数sort()介绍
2015/06/08 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
2018/11/20 Javascript
详解微信小程序之提高应用速度小技巧
2020/01/07 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python单线程实现多个定时器示例
2014/03/30 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
Python插件机制实现详解
2020/05/04 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
业务经理岗位职责
2013/11/11 职场文书
质量承诺书格式
2014/05/20 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
锅炉工岗位职责
2015/02/13 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
python 逐步回归算法
2021/04/06 Python
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
MySQL创建管理HASH分区
2022/04/13 MySQL
JAVA springCloud项目搭建流程
2022/05/11 Java/Android