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 相关文章推荐
mysql 字段类型说明
Apr 27 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 PHP
php常用数学函数汇总
Nov 21 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
May 13 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
PHP环形链表实现方法示例
Sep 15 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 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
php抓取页面与代码解析 推荐
2010/07/23 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
JavaScript 异步调用
2017/10/25 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
python制作小说爬虫实录
2017/08/14 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
酒店前厅员工辞职信
2014/01/08 职场文书
校园歌手大赛策划书
2014/01/17 职场文书
离职报告范文
2014/11/04 职场文书
关于倡议书的范文
2015/04/29 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
八年级作文之感恩
2019/11/22 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技