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 相关文章推荐
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
用PHP和ACCESS写聊天室(三)
Oct 09 PHP
PHP文件读写操作之文件写入代码
Jan 13 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
Feb 04 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
Thinkphp5+uploadify实现的文件上传功能示例
May 26 PHP
php原生数据库分页的代码实例
Feb 18 PHP
解决Laravel5.2 Auth认证退出失效的问题
Oct 14 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
星际RPG字典
2020/03/04 星际争霸
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
python读写ini文件示例(python读写文件)
2014/03/25 Python
Python yield 小结和实例
2014/04/25 Python
python编写爬虫小程序
2015/05/14 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
简单的Python调度器Schedule详解
2019/08/30 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
基于python实现复制文件并重命名
2020/09/16 Python
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
中文系学生自荐信范文
2013/11/13 职场文书
高中物理教学反思
2014/02/08 职场文书
爱国演讲稿400字
2014/05/07 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
python如何正确使用yield
2021/05/21 Python
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技