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面试题附答案
Jan 07 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
PHP正确解析UTF-8字符串技巧应用
Nov 07 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
浅谈php的优缺点
Jul 14 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
May 27 PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 PHP
PDO::beginTransaction讲解
Jan 27 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 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的FTP学习(一)
2006/10/09 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
PHP安全上传图片的方法
2015/03/21 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
跟我学习javascript的函数和函数表达式
2015/11/16 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
浅析vue深复制
2018/01/29 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
详解python基础之while循环及if判断
2017/08/24 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
python实现简单日期工具类
2019/04/24 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
python遍历路径破解表单的示例
2020/11/21 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
工商管理专业实习生自我鉴定
2013/09/29 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
电子商务实训报告总结
2014/11/05 职场文书
迎国庆主题班会
2015/08/17 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书