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 4.2书写安全的脚本
Oct 09 PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
php函数之子字符串替换&amp;#65279; str_replace
Mar 23 PHP
关于svn冲突的解决方法
Jun 21 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
php调用C代码的实现方法
Mar 11 PHP
php结合ajax实现赞、顶、踩功能实例
May 12 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 PHP
php双向队列实例讲解
Nov 17 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
第十三节--对象串行化
2006/11/16 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
php强制下载文件函数
2016/08/24 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
jQuery功能函数详解
2015/02/01 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
javascript 取小数点后几位几种方法总结
2017/08/02 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
python3个性签名设计实现代码
2018/06/19 Python
python使用matplotlib绘制热图
2018/11/07 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python中if及if-else如何使用
2020/06/02 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
python基于win32api实现键盘输入
2020/12/09 Python
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
孕妇病假条怎么写
2015/08/17 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
vue动态绑定style样式
2022/04/20 Vue.js