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+mysql保存和输出文件
Oct 09 PHP
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
php实现的一个很好用HTML解析器类可用于采集数据
Sep 23 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
Oct 27 PHP
详解PHP序列化反序列化的方法
Oct 27 PHP
PHP QRCODE生成彩色二维码的方法
May 19 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
php实现在线考试系统【附源码】
Sep 18 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
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
分享PHP header函数使用教程
2013/09/05 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
php接口技术实例详解
2016/12/07 PHP
PHP 实现重载
2021/03/09 PHP
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
Mac下安装vue
2018/04/11 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
JS面向对象实现飞机大战
2020/08/26 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
商场开业庆典策划方案
2014/06/02 职场文书
勤俭节约主题班会
2015/08/13 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android