递归实现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 相关文章推荐
一个显示天气预报的程序
Oct 09 PHP
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
smarty简单入门实例
Nov 28 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
php实现分页功能的详细实例方法
Sep 29 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 PHP
PHP连接MySQL数据库操作代码实例解析
Jul 11 PHP
详解Laravel框架的依赖注入功能
May 27 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之第十天
2006/10/09 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
vue观察模式浅析
2018/09/25 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
python使用tcp实现局域网内文件传输
2020/03/20 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
python  logging日志打印过程解析
2019/10/22 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
《天游峰的扫路人》教学反思
2014/04/25 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
解决Redis启动警告问题
2022/02/24 Redis
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python