递归实现php数组转xml的代码分享


Posted in PHP onMay 14, 2015

PHP中将数组转为xml的需求是常见的,而且实现方法也有很多种,百度找了一下各种实现方法,但是基本是借组一些组件啥的。我就自己写了一个字符串拼组的方法,支持多维数组。仅供参考,不足之处敬请不吝赐教!

/**
*  将数组转换为xml
*  @param array $data  要转换的数组
*  @param bool $root   是否要根节点
*  @return string     xml字符串
*  @author Dragondean
*  @url  http://www.cnblogs.com/dragondean
*/
function arr2xml($data, $root = true){
  $str="";
  if($root)$str .= "<xml>";
  foreach($data as $key => $val){
    if(is_array($val)){
      $child = arr2xml($val, false);
      $str .= "<$key>$child</$key>";
    }else{
      $str.= "<$key><![CDATA[$val]]></$key>";
    }
  }
  if($root)$str .= "</xml>";
  return $str;
}

上面是实现的方法,第一个参数是你要转换的数组,第二个可选参数设定是否需要加<xml>根节点,默认是需要的。

测试代码:

$arr=array('a'=>'aaa','b'=>array('c'=>'1234' , 'd' => "asdfasdf"));

echo arr2xml($arr);

代码执行后的结果为:

<xml><a><![CDATA[aaa]]></a><b><c><![CDATA[1234]]></c><d><![CDATA[asdfasdf]]></d></b></xml>

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
PHP 翻页 实例代码
Aug 07 PHP
PHP 一个随机字符串生成代码
May 26 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
PHP根据两点间的经纬度计算距离
Oct 31 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
PHP获取文件扩展名的方法实例总结
Jun 10 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
PDO::query讲解
Jan 29 PHP
php根据地址获取百度地图经纬度的实例方法
Sep 03 PHP
php编写批量生成不重复的卡号密码代码
May 14 #PHP
php编写的抽奖程序中奖概率算法
May 14 #PHP
深入浅出php socket编程
May 13 #PHP
PHP中的traits简单使用实例
May 13 #PHP
PHP中的traits实现代码复用使用实例
May 13 #PHP
浅谈本地WAMP环境的搭建
May 13 #PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
May 13 #PHP
You might like
深入了解php4(2)--重访过去
2006/10/09 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
django ajax发送post请求的两种方法
2020/01/05 Python
python列表返回重复数据的下标
2020/02/10 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
中专生自我鉴定书范文
2013/12/28 职场文书
2014年五一劳动节社区活动总结
2014/04/14 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
高中班主任评语
2014/12/30 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
公司员工奖惩制度
2015/08/04 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript