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 相关文章推荐
经典的PHPer为什么被认为是草根?
Apr 02 PHP
php5 mysql分页实例代码
Apr 10 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
PHP常用编译参数中文说明
Sep 27 PHP
CI框架中site_url()和base_url()的区别
Jan 07 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
php微信开发之关键词回复功能
Jun 13 PHP
详解php用static方法的原因
Sep 12 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
YII2框架中查询生成器Query()的使用方法示例
Mar 18 PHP
tp5.1 框架join方法用法实例分析
May 26 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/08 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
php实现httpRequest的方法
2015/03/13 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
Jquery easyUI 更新行示例
2014/03/06 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
python中hashlib模块用法示例
2017/10/30 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
幼儿园教师自我鉴定
2014/03/20 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
工人先进事迹材料
2014/12/26 职场文书
教师培训学习心得体会
2016/01/21 职场文书