php实现xml与json之间的相互转换功能实例


Posted in PHP onJuly 07, 2016

本文实例讲述了php实现xml与json之间的相互转换功能。分享给大家供大家参考,具体如下:

用php实现xml与json之间的相互转换:

相关函数请查看php手册。

一、参考xml如下

<?xml version="1.0" encoding="UTF-8"?>
<humans>
<zhangying>
<name>张三</name>
<sex>男</sex>
<old>26</old>
</zhangying>
<tank>
<name>tank</name>
<sex>
<hao>yes</hao>
<aaaa>no</aaaa>
</sex>
<old>26</old>
</tank>
</humans>

二、xml转换成json

利用simplexml

public function xml_to_json($source) {
if(is_file($source)){ //传的是文件,还是xml的string的判断
$xml_array=simplexml_load_file($source);
}else{
$xml_array=simplexml_load_string($source);
}
$json = json_encode($xml_array); //php5,以及以上,如果是更早版本,请查看JSON.php
return $json;
}

三、json转换成xml

利用递归函数

public function json_to_xml($source,$charset='utf8') {
if(empty($source)){
return false;
}
//php5,以及以上,如果是更早版本,请查看JSON.php
$array = json_decode($source);
$xml ='';
$xml .= $this->change($array);
return $xml;
}
public function change($source) {
$string="";
foreach($source as $k=>$v){
$string .="<".$k.">";
//判断是否是数组,或者,对像
if(is_array($v) || is_object($v)){
//是数组或者对像就的递归调用
$string .= $this->change($v);
}else{
//取得标签数据
$string .=$v;
}
$string .="";
}
return $string;
}

上面的方法json_to_xml,可以支持<name>aaaa</name>,不支持<name type='test'>aaaaa</name>看代码就能看明白.

PS:本站还提供了如下XML与JSON相关工具,方便大家参考使用:

在线XML/JSON互相转换工具:
http://tools.3water.com/code/xmljson

php代码在线格式化美化工具:

在线XML格式化/压缩工具:
http://tools.3water.com/code/xmlformat

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.3water.com/code/jsoncodeformat

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.3water.com/code/ccode_html_css_json

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP个人网站架设连环讲(二)
Oct 09 PHP
PHP Ajax中文乱码问题解决方法
Feb 27 PHP
php语言流程控制中的主动与被动
Nov 05 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
小谈php正则提取图片地址
Mar 27 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 PHP
Yii2如何批量添加数据
May 17 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
php获取服务器操作系统相关信息的方法
Oct 08 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 PHP
PHP登录验证码的实现与使用方法
Jul 07 #PHP
PHP常见的6个错误提示及解决方法
Jul 07 #PHP
php生成mysql的数据字典
Jul 07 #PHP
php自定义函数实现JS的escape的方法示例
Jul 07 #PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 #PHP
PHP使用自定义方法实现数组合并示例
Jul 07 #PHP
PHP记录和读取JSON格式日志文件
Jul 07 #PHP
You might like
php 将excel导入mysql
2009/11/09 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
php表单处理操作
2017/11/16 PHP
PHP7 标准库修改
2021/03/09 PHP
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
浅谈Node.js之异步流控制
2017/10/25 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
python conda操作方法
2019/09/11 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
德国购买健身器材:AsVIVA
2017/08/09 全球购物
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
c++工程师面试问题
2013/08/04 面试题
Linux常见面试题
2013/03/18 面试题
新闻系毕业生推荐信
2013/11/16 职场文书
高中自我鉴定
2013/12/20 职场文书
初中学校对照检查材料
2014/08/19 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
给校长的建议书范文
2015/09/14 职场文书