递归实现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为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
php创建多级目录代码
Jun 05 PHP
php 删除无限级目录与文件代码共享
Nov 22 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
PHP+jQuery实现自动补全功能源码
May 15 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
php curl 上传文件代码实例
Apr 27 PHP
php关键字仅替换一次的实现函数
Oct 29 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 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
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
服装设计专业毕业生推荐信
2013/11/09 职场文书
公司前台辞职报告
2014/01/19 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
个性婚礼策划方案
2014/05/17 职场文书
公司离职证明标准格式
2014/11/18 职场文书
致运动员的广播稿
2015/08/19 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL
图文详解Nginx版本平滑升级方案
2021/09/15 Servers
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技