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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
一个php作的文本留言本的例子(四)
Oct 09 PHP
深入了解php4(2)--重访过去
Oct 09 PHP
php中如何防止表单的重复提交
Aug 02 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
如何使用php等比例缩放图片
Oct 12 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 PHP
PHP getName()函数讲解
Feb 03 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 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列出一个目录下的所有文件的代码
2012/10/09 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
2013/06/24 PHP
php旋转图片90度的方法
2013/11/07 PHP
php制作动态随机验证码
2015/02/12 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
2016/12/16 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
vue发送ajax请求详解
2018/10/09 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
python实现查找两个字符串中相同字符并输出的方法
2015/07/11 Python
Python简明入门教程
2015/08/04 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
Python星号*与**用法分析
2018/02/02 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
django+echart数据动态显示的例子
2019/08/12 Python
Python单元测试与测试用例简析
2019/11/09 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
python在协程中增加任务实例操作
2021/02/28 Python
劳资专员岗位职责
2013/12/27 职场文书
测量工程专业求职信
2014/02/24 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书