递归实现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 相关文章推荐
笑谈配置,使用Smarty技术
Jan 04 PHP
php+mysql写的简单留言本实例代码
Jul 25 PHP
PHP 输出简单动态WAP页面
Jun 09 PHP
PHP定时执行计划任务的多种方法小结
Dec 19 PHP
解析php dirname()与__FILE__常量的应用
Jun 24 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
php删除左端与右端空格的方法
Nov 29 PHP
php简单定时执行任务的实现方法
Feb 23 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
调试php程序的简单步骤
Oct 04 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 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
php仿discuz分页效果代码
2008/10/02 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP简单遍历对象示例
2016/09/28 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
Python中的列表知识点汇总
2015/04/14 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
python打印异常信息的两种实现方式
2019/12/24 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
介绍Java的内部类
2012/10/27 面试题
公司业务员岗位职责
2014/03/18 职场文书
售后服务承诺书
2014/03/26 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
健康证明
2015/06/19 职场文书
python 实现定时任务的四种方式
2021/04/01 Python