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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
yii2实现根据时间搜索的方法
May 25 PHP
PHP微信支付开发实例
Jun 22 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
实例讲解PHP页面静态化
Feb 05 PHP
PHP实现微信提现功能
Sep 30 PHP
PHP赋值的内部是如何跑的详解
Jan 13 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 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获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
python实现的简单FTP上传下载文件实例
2015/06/30 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
PyCharm在win10的64位系统安装实例
2017/11/26 Python
python3.4爬虫demo
2019/01/22 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
三个Unix的命令面试题
2015/04/12 面试题
解释下面关于J2EE的名词
2013/11/15 面试题
销售文员岗位职责
2013/11/29 职场文书
农场厂长岗位职责
2013/12/28 职场文书
年终考核评语
2014/01/19 职场文书
实践单位评语
2014/04/26 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
大学生实习证明范本
2014/09/19 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
爱护环境建议书
2015/09/14 职场文书