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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
使用php清除bom示例
Mar 03 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
Apr 15 PHP
php文件读取方法实例分析
Jun 20 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
PDO::getAttribute讲解
Jan 28 PHP
PHP高并发和大流量解决方案整理
Mar 09 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长字符串定义方法
2012/07/12 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
js实现跟随鼠标移动的小球
2019/08/26 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
python实现通过shelve修改对象实例
2014/09/26 Python
python中反射用法实例
2015/03/27 Python
Python之py2exe打包工具详解
2017/06/14 Python
pandas的qcut()方法详解
2019/07/06 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
python中有关时间日期格式转换问题
2019/12/25 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
python中的unittest框架实例详解
2021/02/05 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
经费申请报告
2015/05/15 职场文书
运动员入场前导词
2015/07/20 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android